python的「 」與C 的區別

2021-09-13 23:57:43 字數 1235 閱讀 6229

先來看python中普通變數傳值

data1=1

data2=data1

data2+=1

print data2,data1

2 1

對於普通變數python和c是一樣的,接下來看看python的列表

data1=[1,2,3,4]

data2=data1

data2+=[5]

print data1

[1, 2, 3, 4, 5]

print data2

[1, 2, 3, 4, 5]

data1=[1,2,3,4]

data2=data1

print data1

[1, 2, 3, 4, 5]

print data2

[1, 2, 3, 4, 5]

data1=[1,2,3,4]

data2=data1

data2=data2+[5]

print data1

[1, 2, 3, 4]

print data2

[1, 2, 3, 4, 5]

由此可以看到python list傳值時,傳遞的是指標。但是從上面**可以看到data2=data2+[5]跟前面執行結果不一樣,這是因為data2=data2+[5]在python中應該是分兩步運算的,先把右值傳遞給棧內的乙個變數,然後再把這個變數傳給data2,所以運算後data1跟data2的指標不在一起。

由於python中的元組相當與c中的常量陣列,不分析元組,接下來看看python中的字典變數

data1={}

data1["ont"]="st1"

data2=data1

data1[2]="st2"

print data1

print data2

字典中傳遞的也是位址,接下來看看一種特殊的字典,即字典中對應的值是個list

from collections import defaultdict

data1=defaultdict(list)

b=data1["one"]

print data1

defaultdict(, )

print b

['1', '2']

C 與Python的區別(三)

區別8 c 異常處理基於3個關鍵字 try,catch,throw。而python中異常處理基於try,except,else,pass關鍵字。python處理異常的 更簡潔,而且易讀性較強。c 中異常處理如下例 int main catch double i cout z return0 pyth...

C 與C的區別

l c如果不寫返回值,預設是int,而c 中不能不寫返回值 可用void表示無返回值 如func1 l int func1 在c中表示可帶任意引數的函式,這是c的漏洞,使得它避開了引數型別檢查 而c 中表示不帶引數的函式。2 標頭檔案的區別 l c 的標頭檔案去掉了c中的.h,以c字首開始。比如,變...

C與C 的區別

1.void型指標 int x malloc sizeof int 10 在c裡面是合法的,但是在c 中編譯不通過。從bjarne stroustrup給出的解釋是這種型別是不安全的。就是說你可以使用乙個void型的指標指向任何位址,如果你分配了乙個位址給這個void指標指向另乙個與它型別不同的指標...