C語言全局變量和局部變量會沖突嗎?
C語言中,看你怎么安放全局變量和局部變量了。如果你把全局變量和局部變量放在一個代碼文件內,那么就是沖突的。這么說不明顯,我寫個C程序代碼你就知道了,如下圖所示:
在這段C程序中,我在主函數main之外定義了一個全局變量para,并且給了一個初始值1。在C程序主函數main里面,我又定義了一個變量para,跟主函數之外的那個para是同名。
這里,C程序主函數外面的那個變量生命周期在整個代碼中有效,而主函數的這個變量只在主函數內有效。
這也就是說,在C程序主函數里操作para變量,實際上操作的是主函數中的變量,外面的para變量值還是1。在這段C程序中,main函數中的para變量把外面的變量para給遮住了。
所以,同學們在學習C語言時,一定要注意這個全局變量被局部同名變量遮住的問題,同時也要了解變量的作用域和生命周期。