此前我們已經使用malloc
動態內存分配,爲什麼變量名稱和數據類型名稱被允許使用函數但不包含關鍵字?
struct node* node = (struct node*) malloc(sizeof(struct node));
它工作得很好。
雖然做再保理我把它改成,
struct node* node = new node;
,這讓我的錯誤,
錯誤1個錯誤C2061:語法錯誤:標識符 '節點'
爲什麼同一個變量node
名稱與函數(malloc)正常工作,但不適用於(新)。
我使用Visual Studio 2012
編譯器不應該理解上下文嗎? – 2015-01-21 04:52:25
不可以。您只能在同一範圍內爲標識符指定一個含義。有時會超過另一個(「陰影」),有時會導致編譯器錯誤。 – 2015-01-21 04:55:38