全局變量怎么使用 C語言全局變量和局部變量會沖突嗎?為什么?
C語言全局變量和局部變量會沖突嗎?為什么?在C語言中,這取決于如何放置全局變量和局部變量。如果將全局變量和局部變量放在一個(gè)代碼文件中,則會發(fā)生沖突。所以不明顯,我將編寫一個(gè)C程序代碼,如下圖所示:在這
C語言全局變量和局部變量會沖突嗎?為什么?
在C語言中,這取決于如何放置全局變量和局部變量。如果將全局變量和局部變量放在一個(gè)代碼文件中,則會發(fā)生沖突。所以不明顯,我將編寫一個(gè)C程序代碼,如下圖所示:
在這個(gè)C程序中,我在main函數(shù)外定義了一個(gè)全局變量para,并給出一個(gè)初始值1。在C程序的主函數(shù)中,我定義了一個(gè)變量para,它與主函數(shù)外的變量同名。
這里,C程序主函數(shù)外的變量的生命周期在整個(gè)代碼中是有效的,而主函數(shù)的變量只在主函數(shù)中有效。
也就是說,當(dāng)您在C程序的主函數(shù)中操作para變量時(shí),實(shí)際上是在主函數(shù)中操作變量,而外部para變量的值仍然是1。在這個(gè)C程序中,main函數(shù)中的para變量隱藏了外部變量para。
因此,學(xué)生在學(xué)習(xí)C語言時(shí),必須注意全局變量被同名局部變量覆蓋的問題,還要了解變量的范圍和生命周期。
全局變量和局部變量的在內(nèi)存的區(qū)別?
全局變量和局部變量的區(qū)別如下:1。不同的作用域:全局變量的作用域是整個(gè)程序,而局部變量的作用域是當(dāng)前函數(shù)或循環(huán)。2不同的內(nèi)存存儲方法:全局變量存儲在全局?jǐn)?shù)據(jù)區(qū),局部變量存儲在堆棧區(qū)。3個(gè)不同的生命周期:全局變量的生命周期與主程序的生命周期相同,隨著程序的銷毀而銷毀。局部變量在函數(shù)或循環(huán)中,并且不隨函數(shù)的出口或循環(huán)出口而存在。4不同的使用方法:全局變量可以在聲明后在程序的所有部分使用,但局部變量只能在局部使用。局部變量優(yōu)先于函數(shù)中的全局變量。局部變量可以與全局變量同名,但局部變量會屏蔽全局變量。全局變量是一種編程術(shù)語,它來源于變量的劃分。變量分為局部變量和全局變量,局部變量又稱內(nèi)部變量。由對象或函數(shù)創(chuàng)建的變量通常是局部變量,只能在內(nèi)部引用,而不能由其他對象或函數(shù)引用。全局變量可以由一個(gè)對象函數(shù)創(chuàng)建,也可以在這個(gè)程序的任何地方創(chuàng)建。全局變量可由該程序中的所有對象或函數(shù)引用。
C語言中全局變量存放在內(nèi)存空間中的哪個(gè)位置?
全局變量存儲在全局靜態(tài)存儲器中。用戶存儲空間可以分為三個(gè)部分:1。程序區(qū)。程序區(qū)主要用于存儲用戶編寫的源代碼。
2. 靜態(tài)存儲區(qū)全局變量存儲在靜態(tài)存儲區(qū)中。當(dāng)程序開始執(zhí)行時(shí),全局變量被分配到存儲區(qū)域,并在程序完成后釋放。在程序執(zhí)行過程中,它們占用固定的存儲單元,沒有動態(tài)的分配和釋放。
3. 動態(tài)存儲動態(tài)存儲以下數(shù)據(jù):1)函數(shù)形式參數(shù);2)自動變量(無靜態(tài)聲明的局部變量);3)字段保護(hù)和函數(shù)調(diào)用實(shí)返回地址;