全局變量經(jīng)過函數(shù)后會改變嗎 C語言全局變量和局部變量會沖突嗎?為什么?
C語言全局變量和局部變量會沖突嗎?為什么?在C語言中,這取決于如何放置全局變量和局部變量。如果將全局變量和局部變量放在一個代碼文件中,則會發(fā)生沖突。所以不明顯,我將編寫一個C程序代碼,如下圖所示:在這
C語言全局變量和局部變量會沖突嗎?為什么?
在C語言中,這取決于如何放置全局變量和局部變量。如果將全局變量和局部變量放在一個代碼文件中,則會發(fā)生沖突。所以不明顯,我將編寫一個C程序代碼,如下圖所示:
在這個C程序中,我在main函數(shù)外定義了一個全局變量para,并給出一個初始值1。在C程序的主函數(shù)中,我定義了一個變量para,它與主函數(shù)外的變量同名。
這里,C程序主函數(shù)外的變量的生命周期在整個代碼中是有效的,而主函數(shù)的變量只在主函數(shù)中有效。
也就是說,當(dāng)您在C程序的主函數(shù)中操作para變量時,實(shí)際上是在主函數(shù)中操作變量,而外部para變量的值仍然是1。這就給出了程序中para的主要變量。
因此,學(xué)生在學(xué)習(xí)C語言時,必須注意全局變量被同名局部變量覆蓋的問題,還要了解變量的范圍和生命周期。
C語言中全局變量調(diào)用后會被修改值嗎?
對于全局變量,如果在函數(shù)中修改了值,則會更改全局變量的值,并且會在其他函數(shù)中訪問修改后的值。但是,如果在函數(shù)中定義了與全局變量同名的局部變量,則會在函數(shù)中修改局部變量,并且不能修改全局變量的值。