以後區分不同語言裡變數的區別時。注意從三個角度來分析。1、變數名:就是隻能包含字母和數字之類的識別符號,對應例子的p2、資料型別:在題主的例子裡就是 "int *" ,在C裡稱為變數型別3、值:實際儲存地址的那個空間,在32bit系統佔據32bit空間,一般與記憶體空間具有相同意義在C語言裡,對大多數變數,這三者是一體的。即定義變數時,變數名擁有一個定義的型別和儲存的值。對指標來說,也是如此,他的型別就是指標,具體將是 "指向int型別的指標型別" ,他儲存的值就是個地址。所以裡面兩種說法都對,沒必要為此搞一個大新聞出來。在C中,因為型別與變數名是繫結在一起的,所以資料型別也叫變數型別。而變數型別是可以透過強制型別轉換來將變數儲存的值轉換為其他型別的。比如將題主的變數p強制轉換 "(int)p",這樣就使得這個指標的地址以有符號整數的方式顯示了。這個例子就討論了值與型別分離的情況。而在python裡,則有所區別。python的型別是與值繫結在一起的。而變數名只是個名字,可以指向一個具體的值。而值的型別儲存在其物件結構體裡面。這種名字和值的分離使得python的動態性提高,程式設計更加容易。同時因為需要每次判定一個物件的型別而降低了效能。
以後區分不同語言裡變數的區別時。注意從三個角度來分析。1、變數名:就是隻能包含字母和數字之類的識別符號,對應例子的p2、資料型別:在題主的例子裡就是 "int *" ,在C裡稱為變數型別3、值:實際儲存地址的那個空間,在32bit系統佔據32bit空間,一般與記憶體空間具有相同意義在C語言裡,對大多數變數,這三者是一體的。即定義變數時,變數名擁有一個定義的型別和儲存的值。對指標來說,也是如此,他的型別就是指標,具體將是 "指向int型別的指標型別" ,他儲存的值就是個地址。所以裡面兩種說法都對,沒必要為此搞一個大新聞出來。在C中,因為型別與變數名是繫結在一起的,所以資料型別也叫變數型別。而變數型別是可以透過強制型別轉換來將變數儲存的值轉換為其他型別的。比如將題主的變數p強制轉換 "(int)p",這樣就使得這個指標的地址以有符號整數的方式顯示了。這個例子就討論了值與型別分離的情況。而在python裡,則有所區別。python的型別是與值繫結在一起的。而變數名只是個名字,可以指向一個具體的值。而值的型別儲存在其物件結構體裡面。這種名字和值的分離使得python的動態性提高,程式設計更加容易。同時因為需要每次判定一個物件的型別而降低了效能。