我在这里有一个非常简单的代码,但我无法真正理解内存上发生了什么:
#include <stdio.h>
#include <stdlib.h>
int main(){
int v[8], *u = &v[2];
v[2] = 20;
printf("%d",*u);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以基本上,当我要求它打印*你,它会给我20.我不明白为什么.我是指针的新手,我从未见过你给一个*指针值的例子.
我只能制作简单的代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
int a = 10, *b;
b = &a;
printf("%d",*b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我可以很容易地理解发生了什么.在这两种情况下,有人可以对内存中发生的事情进行比较吗?
非常感谢你!