區域性變數 和 全域性變數

2022-09-03 01:12:11 字數 1867 閱讀 5826

區域性變數

區域性變數只在函式裡生效,這個函式就是這個區域性變數的作用域

例項1

def

change_name(name):

print('

before chang

',name)

name='

qiangql'#

區域性變數只在函式裡生效,這個函式就是這個區域性變數的作用域

print('

after change

',name)

name= '

qiangql

'change_name(name)

print(name)

全域性變數

全域性變數需要在函式裡宣告,宣告方法為『global 變數名』,呼叫函式後再整個程式生效。

例項2

def

change_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 一般程式把新產生的動態資料存放在堆區,函式內部的自動變數存放在棧區。自動變數一般會隨著函式的退出而釋放空間,靜態資料 即使是函式內部的靜態區域性變數 也存放在全域性資料區。...