區域性變數區域性變數只在函式裡生效,這個函式就是這個區域性變數的作用域
例項1
defchange_name(name):
print('
before chang
',name)
name='
qiangql'#
區域性變數只在函式裡生效,這個函式就是這個區域性變數的作用域
print('
after change
',name)
name= '
qiangql
'change_name(name)
print(name)
全域性變數全域性變數需要在函式裡宣告,宣告方法為『global 變數名』,呼叫函式後再整個程式生效。
例項2
defchange_name(name):
global school #
global 宣告全域性變數
print('
before chang
',name)
name='
qiangql'#
區域性變數只在函式裡生效,這個函式就是這個區域性變數的作用域
print('
after change
',name)
school = '
oldboy
'school ='
qingniao
'
name= 'qiangql'change_name(name) ###這裡呼叫了函式change_name
知識點 ,在函式裡只有字串、整數的變數不能改,但是列表 ,字典 ,類的變數可以在函式裡改(因為列表,字典,類裡邊的資料太多了,需要方便操作)
總結:全域性與區域性變數
在子程式中定義的變數稱為區域性變數,在程式的一開始定義的變數稱為全域性變數。
全域性變數作用域是整個程式,區域性變數作用域是定義該變數的子程式。
當全域性變數與區域性變數同名時:
在定義區域性變數的子程式內,區域性變數起作用;在其它地方全域性變數起作用。
注意!!!!!!!!!!!!! 不要在函式裡邊改全域性變數要改在函式外邊宣告,再在函式裡邊改全域性變數 靜態全域性變數 靜態區域性變數 區域性變數
全域性和靜態變數都在堆裡。這句話應該錯了,應該是放在常量資料段 全域性變數的作用範圍是整個程式 如果程式是多個檔案,必須在其他的檔案中說明 靜態變數的作用範圍要看靜態變數的位置,如果在函式裡,則作用範圍 就是這個函式。靜態全域性變數,只在本檔案可以用,雖然整個程式包含多個檔案,但靜態全域性變數只能用...
全域性變數 靜態全域性變數 靜態區域性變數 區域性變數
全域性和靜態變數都在堆裡。全域性變數的作用範圍是整個程式 如果程式是多個檔案,必須在其他的檔案中說明 靜態變數的作用範圍要看靜態變數的位置,如果在函式裡,則作用範圍 就是這個函式。靜態全域性變數,只在本檔案可以用,雖然整個程式包含多個檔案,但靜態全域性變數只能用在定義它的那個檔案裡,卻不能用在程式中...
全域性變數 靜態全域性變數區域性變數 靜態區域性變數
對於乙個完整的程式,在記憶體中的分布情況如下圖 區 low address 全域性資料區 堆區 棧區 high address 一般程式把新產生的動態資料存放在堆區,函式內部的自動變數存放在棧區。自動變數一般會隨著函式的退出而釋放空間,靜態資料 即使是函式內部的靜態區域性變數 也存放在全域性資料區。...