,如果我有一個指針a = null;
我初始化另一個指針可以說int * b;
可以設置一個指向另一個指針,其值爲NULL
如果我設置b = a
,這將只是給我b = null
?
或者這會給我一個編譯錯誤?
我知道它的一個簡單的問題,但我想仔細檢查我的理解
,如果我有一個指針a = null;
我初始化另一個指針可以說int * b;
可以設置一個指向另一個指針,其值爲NULL
如果我設置b = a
,這將只是給我b = null
?
或者這會給我一個編譯錯誤?
我知道它的一個簡單的問題,但我想仔細檢查我的理解
int *a = NULL
int *b = a;
當然代碼編譯和工作正常。指針b
的值爲NULL
,與a
相同。
請注意,當您在代碼中引用空指針時,它是NULL
或0
,而不是null
。或者更好的,在C++ 11中使用nullptr
。
'nullptr'本身就是一個關鍵字,所以'std ::'限定是錯誤的('nullptr',但是'std :: nullptr_t') – milleniumbug
@milleniumbug好知道,修正。 –
null是a的值,通過做b = a,b將取a,null的值。
所以沒有錯誤。這是當你解除引用指針(使用*)時,如果地址(指針的值)無效,可能會發生問題。
也許你可以試試嗎? –
'null'和'NULL'是兩個不同的標識符,除非你自己定義'null',否則C中沒有定義'null'。你是不是指'NULL'? –