Bil*_*lly 2 c pointers memory-address
我在我的 C 编程书中找到了这段代码:
int i = 42;
int *p;
p = &i; // & is address of sign
*p = i; // * is dereference sign
Run Code Online (Sandbox Code Playgroud)
"p = &i" 和 "*p = i" 之间有什么区别吗??使用这两个表达式时“p”会具有不同的特征吗???
编辑:因为这段代码只是试图解释指针的概念,它是不可运行的......所以这两个赋值的顺序在这种情况下是不相关的......抱歉让事情变得模糊......
将地址 int “i” 分配给指针 “p” 时 “p = &i” 和 “*p = i” 之间有什么区别吗
是的,有很大的不同。仅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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |