我在我的C编程书上找到了这段代码:
int i = 42;
int *p;
p = &i; // & is address of sign
*p = i; // * is dereference sign
“p = &i”和“*p = i”有区别吗?? “p”在使用这两个表达时会有不同的特征吗???
编辑:因为这段代码只是试图解释指针的概念,它是不可运行的……所以这两个赋值的顺序在这种情况下不相关……抱歉让事情变得模糊……
最佳答案
Is there any differences between “p = &i” and “*p = i” while assigning the address int “i” to a pointer “p”
是的,有很大的不同。只有p = &i
表示“将i
的地址赋值给p
”。
另一方面,*p = i
表示“将 i
的值分配给存储在 p
中的地址处的值”。你可以通过一个简单的例子看到结果:
int i = 42;
int* p;
p = &i;
printf("%d", i);
*p = 5;
printf("%d", i);
int j = 3;
printf("%d %d", i, j);
p = &j;
*p = i;
printf("%d %d", i, j);
关于c - 将地址 int "p = &i"分配给指针 "*p = i"时, "i"和 "p"之间是否有任何差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59293317/