C 和 Python 中全局變量和局部變量的比較

前言

最近學習到了 Python 的全局變量和局部變量,在學習的過程中難免和 C 語言中的語法進行比較,一時有點凌亂,故藉此文複習整理 。如有不嚴謹之處,敬請指正。

C 語言中的全局變量和局部變量

局部變量

C 語言中把定義在函數內部的變量稱爲局部變量,局部變量的有效作用範圍侷限於所在的函數內部。形參是局部變量。
使用局部變量可以避免各個函數之間的變量相互干擾。一個函數的局部變量可以與不同函數內部的局部變量同名。
除了作用於函數的局部變量以外, C 語言還允許定義作用於複合語句中的局部變量,其有效使用範圍被侷限於複合語句之內,一般用作小範圍的臨時變量。

全局變量

定義在函數外而不屬於任何函數的變量稱爲全局變量。全局變量的作用範圍是從定義開始到程序所在文件的結束,它對作用範圍內所有的函數都起作用。
由於全局變量與局部變量的作用範圍不同,允許它們同名。當某函數的局部變量與全局變量同名時,在該函數中全局變量不起作用,而由局部變量起作用。對於其他不存在同名變量的函數,全局變量仍然有效。
同樣,當函數局部變量與複合語句的局部變量同名時,以複合語句爲準。

Python 中的全局變量和局部變量

與 C 語言的主要區別在於 global 關鍵字,對於 Python 中的全局變量而言,如果在函數中只使用到了它的值,而沒有對其進行賦值操作的話,就不需要聲明 global ,反之,如果需要對其進行賦值操作的話,那麼就需要聲明 global 。
如果沒有聲明 global ,而又在函數內對全局變量進行了賦值操作,表示是新建一個與相應的全局變量同名的局部變量,並對其進行賦值;相反,如果聲明瞭 global 的話,就表示是對相應的全局變量進行賦值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章