指针的定义
int *p_num ; // 类型 * 变量名;
指针是一种变量;拥有普通变量的基本操作; 赋值,获取值,判断;指针和指针可以做减法,计算内存的偏移量(int),但是指针之间不能做加法(结果不知道什么类型);
指针的赋值;
指针变量保存的是内存地址;获取地址的方式有两种;
一 对现有的变量取地址;
int num = 0;
p_num = & num;
二 分配内存空间
p_num = (int *)malloc(10);
指针的使用
由于指针保存了其他的内存空间;所以指针有两份内存空间;一份是指针变量本身的内存;一份是指针变量里保存的内存空间;
int *p_num = malloc(12);
分配的内存空间为 sizeof(int*)+12 = 16;
一 :指针变量的使用;
printf("%p",p_num); 打印指针变量保存的内容;0xFFFFFFF0
p_num = p_num+1; 指针的移动;指向下一块内存;
printf("%p",p_num); 打印指针变量保存的内容;0xFFFFFFF4 ; 指针+1 移动的内存等于 指针的类型;
二: 对指针保存内容的使用;*和 [ ]
*p_num = 10; == p_num[0]=10;
*(p_num+1) = 11; == p_num[1]=11;
*(p_num+2) = 12; == p_num[2]=12;
2) const p; p 不可以改变,*p 可以改变;
3) const *p ; *p 不可以改变, p 可以改变;