python中的變數位址問題

2021-10-10 03:05:46 字數 1262 閱讀 2331

a=[1

,2,3

,4]b=a

print

(a);

print

(b)print(id

(a)==

id(b)

)##a和b的儲存位址一樣a[1

]=10;

print

(b)## 修改了a中的資料,但b中資料改變

'''[1, 2, 3, 4]

[1, 2, 3, 4]

true

[1, 10, 3, 4]

'''

import copya=[

1,2,

[3,4

]]b=copy.copy(a)

print

(a);

print

(b)print(id

(a)==

id(b)

)print(id

(a[2])

==id

(b[2])

) a[2]

[0]=

10print

(b)print

('修改a[2],a[0]中!!!')a[

0]=20

;a[2]=

[1,1

]##由於修改了a[2],導致位址改變

print(id

(a[2])

==id

(b))

'''[1, 2, [3, 4]]

[1, 2, [3, 4]]

false

true

[1, 2, [10, 4]] ##此時修改a[2]中的某個資料,則b中資料也會改變

修改a[2],a[0]中!!!

false

'''

import copya=[

1,2,

[3,4

]]c=copy.deepcopy(a)

#使用的函式讓每個元素的位址都不一樣

print

(a);

print

(c)print(id

(a)==

id(c)

)print(id

(a[2])

==id

(c[2])

)'''

[1, 2, [3, 4]]

[1, 2, [3, 4]]

false

false

'''

檢視變數位址

在linux中寫乙個程式,裡面全域性變數,區域性變數,static,const,常數,陣列,輸出這些變數的位址 包括賦值的和沒有賦值的,各類資料型別 如下 include int a int b 1 int const c 1 int const x static int d static int ...

指標變數與變數位址

一 基本概念 儲存單元一般應具有儲存 資料和讀寫資料的功能,以8位二進位製作為乙個儲存單元,也就是乙個位元組。每個單元有乙個位址,是乙個整數 編碼,可以表示為 二進位制整數。程式中的變數和主儲存器的儲存單元相對應。變數的名字對應著儲存單元的位址,變數內容對應著 單元所儲存的資料。儲存位址一般用十六進...

區域性變數位址的返回

char fun 這個函式的返回值?以及這個函式在棧上的儲存布局 include include include char fun int main int argc,const char argv 就函式而言,返回區域性變數的位址這種做法是錯誤的,但是這個函式不管是在vs還是在gcc上編譯時都只會...