簡體   English   中英

在聲明過程中初始化指針的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM