Nat*_*Lee 1 c pointers declaration
在执行n1之后的"第0句"存储器地址之后,n2和*pn是ADDR:0061FF2C,0061FF28,0061FF24.执行1),2)和3)后他们会改变吗?我为每个代码都添加了printf,但它们似乎没有改变.从理论上讲,它们不应该因为变量被赋予新值而改变吗?
#include <stdio.h>
int main(void)
{
int n1=3, * pn = &n1;
int n2=0;
printf("%p, %p, %p\n", &n1, &n2, &pn); // 0)
n2 = *pn; // 1)
*pn = n2 + 1; // 2)
n1 = *pn + *(&n2); // 3)
printf("%d, %d, %d\n",n1,n2,*pn); // 4)
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |