int a = 10;
int *b = &a;
printf("%p\n",&a); \\输出变量a自身地址
printf("%p\n", b); \\输出指针b中指向的地址,即a地址
printf("%p\n", &b); \\输出指针b自身的地址
printf("%d\n", a); \\输出变量a中数据10
printf("%d\n", b); \\输出指针b中存储的数据,5240892即为16进制004FF83C
printf("%p\n", b); \\输出指正b中存储数据,以指针格式输出
printf("%d\n", *b); \\输出指针b指向的地址内的数据,即a的数据
输出结果:
004FF83C
004FF83C
004FF830
10
5240892
004FF83C
10
综上,&是取变量或指针自身的地址;*是取指针中指向地址内的数据;什么都不加,就是取该变量或指针中当前存储的数据。