int a=4;
int *p=&a;
这个语法是对的,但是当我们这样写的时候
int a;
int *p;
*p=&a;
第三行是一个错误,我知道但是,为什么可以在第一行代码中这样做
int *p=&a;
当我们通过引用将值传递给函数时,我们甚至会这样做...... 谢谢回复
最佳答案
使用int *p=&a;
,你是
- 声明一个变量 (
p
),它是一个指向 int 的指针 - 将
a
的地址分配给p
等效的代码是
int *p; // declare a pointer variable 'p'
p = &a; // assign the address of a to 'p'
第三行*p=&a;
是错误的,因为*p
表示地址为p
的指针的(整数)值>,该值是一个 int
而不是 int 的地址
(即,不是 pointer to an int
)
关于c - 解释以下语法,我无法理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18675176/