![](/img/trans.png)
[英]Why can't I print the pointer value that has been initialized while declaring the pointer?
[英]initialized the value of a pointer in declaring process
指針中的某些內容使我無法聲明指向int的指針,然后對其進行定義
int *p, a;
p = &a;
a = 3;
它可以變成
int a = 3;
int *p = &a;
在后一種情況下,我感到困惑。 * p的值不是p指向的對象的值(在此示例中為a的值),為什么在前一種情況下是
int *p = &a;
這是a的地址,但不是a的值。 不是嗎
int p = &a
為了說明p是指針,它指向的地址是對象a的地址
另外,我看到在某些情況下還有(int *)p。 它和普通聲明有什么不同嗎?
*
聲明中
int *p = &a;
不是間接運算符。 它只是通知編譯器p
是指針類型。 *
僅當它出現在語句中時,才充當解引用運算符。 這意味着*p
int *p = &a;
不相同, *p
作為一個別名a
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.