![](/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.