指针中的某些内容让我感到困惑 声明一个指向 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 是指针类型。 *
仅当出现在语句中时才充当解引用运算符。这意味着 int *p = &a;
中的 *p
与作为 a
别名的 *p
不同>.
关于c - 在声明过程中初始化指针的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29199718/