繁体   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