-6
我只是有一個關於指針的基本概念。 int *v;
和int **v;
之間的區別是什麼和int* v;
和int *v;
之間有什麼區別請讓我知道。對變量使用單一的參照運算符和雙重引用運算符有什麼區別?
我只是有一個關於指針的基本概念。 int *v;
和int **v;
之間的區別是什麼和int* v;
和int *v;
之間有什麼區別請讓我知道。對變量使用單一的參照運算符和雙重引用運算符有什麼區別?
變量聲明中的*
與變量聲明後的*
不同。在一個聲明中,*
聲明被聲明的變量是一個指向你聲明的類型值的指針。在你的榜樣,
int *v;
是一個指向int
價值的聲明,而
int **v;
是一個指針的聲明的指針int
值。
不過,後來在聲明之後你的代碼,你可以再調用
*v
取消引用該指針,並獲得存儲在內存位置的指針指向的值。
在聲明中,int* v
和int *v
之間沒有區別,但在同一行中聲明多個變量時使用int *v
更明顯。在
int* v, u
v
是一個指向int
而u
只是一個int
,這可能是不清楚從申報,一邊寫
int *v, u
最終成爲你的意圖稍微清晰(使v
和int
指針和u
只是int
)。
你應該真的閱讀一個介紹性的C教程。你的問題的內容掩蓋了「我對指針有一個基本概念」的說法。 –
「int * a」,「int * a」和「int * a」沒有區別。然後,在取消引用指針時,最終可能會得到另一個指針,爲了獲取它指向的值(如果有),需要取消引用。這個過程可能會一再重複,導致一些惡夢如'***** a;'或'********* b'。 – ForceBru
可能的重複[什麼更有意義 - char \ * string或char \ * string?](http://stackoverflow.com/questions/558474/what-makes-more-sense-char-string-or-char-串) – DevNull