全局變量的作用域是什么 C語言全局變量和局部變量會(huì)沖突嗎?為什么?
C語言全局變量和局部變量會(huì)沖突嗎?為什么?在C語言中,這取決于如何放置全局變量和局部變量。如果將全局變量和局部變量放在一個(gè)代碼文件中,則會(huì)發(fā)生沖突。所以不明顯,我將編寫一個(gè)C程序代碼,如下圖所示:在這
C語言全局變量和局部變量會(huì)沖突嗎?為什么?
在C語言中,這取決于如何放置全局變量和局部變量。如果將全局變量和局部變量放在一個(gè)代碼文件中,則會(huì)發(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í),必須注意全局變量被同名局部變量覆蓋的問題,還要了解變量的范圍和生命周期。
3.變量根據(jù)作用域可分為哪三種變量,他們的區(qū)別有什么?
根據(jù)變量的范圍,變量可以分為兩類,即局部變量和全局變量。局部變量也稱為內(nèi)部變量。局部變量在函數(shù)中定義。其范圍僅在函數(shù)內(nèi)。離開函數(shù)后使用此變量是非法的。全局變量,也稱為外部變量,是在函數(shù)外部定義的變量。它不屬于哪個(gè)函數(shù),它屬于一個(gè)源程序文件。它的范圍是整個(gè)源程序。