指针概念图
图中的Pointer是指针变量、var_runoob是int类型的变量,可以看到指针自身的值是指向var_runoob地址的。图中地址均用16进制进行表示
指针代码解释
#include<stdio.h>
int main(void){
int var_runoob=10;
int *pointer;
pointer=&var_runoob;
printf("var_runoob 变量的地址:%p\n",&var_runoob);
printf("var_runoob 变量的值:%d\n",var_runoob);
printf("pointer 指针指向的变量地址:%p\n",pointer);
printf("pointer 指针自身的地址:%p\n",&pointer);
printf("pointer 指针自身的值:%p\n",*&pointer);
printf("pointer 指针指向的变量的值:%d\n",*pointer);
printf("var_runoob 变量的地址(十进制):%d\n",&var_runoob);
return 0;
}
总结如下:
- 1.指针的声明方式为int *pointer,声明int类型的指针变量;
- 2.指针的定义方式为pointer=&var_runoob,将变量的地址赋值给指针;
- 3.输出p:这是指针自身的值,也是指针所指向变量的地址;
- 4.输出&p:这是指针自身的地址,与指向变量的地址没有任何关系;
- 5.输出p:这是指针所指向变量的int值;
与&两个符号的作用是相反的,给你一个变量的地址,那么在此地址前加即可得到这个变量的值;给你一个变量名,在此变量名前加上&即可得到这个变量的地址(上面的图片中提到了与&的作用)。