指针变量
存储变量地址的变量;
指定指针变量类型,可以定义存储的数据长度;
指针:#
指针变量:int *p=#
任何指针都只占四个字节;
指针初始化
尽量在定义的时候就完成初始化
未经初始化的指针就是野指针,不能拿来使用;
//int *p=NULL;//oxooo不可访问;不可修改
//指针变量必须赋值有权限可以访问的地址;
//int num = 100;
// p = #
//printf("%x", p);
//printf("\n%x,%d", &num, num);//p等价于地址,*p等价于num;
//printf("%d", *p);//访问冲突
int num = 100;
int *p = #//int类型的指针,指针存储地址从哪里开始,类型确定了长度
//如果指针为空不能访问;
指针代码实践
int num=5;
int *p;
p=#//reset
*p=10;//调用指针变量,需要先赋值;
指针类型
不同的类型的指针不能直接赋值,会发生错误;按左边指针的类型进行读取值(读取几个字节);
指针类型和指向类型不同
int num;
double *p;
p=#//不一致,
指针变量的类型
所有类型的指针变量都是32(4*8)位的整数,编译器会把指针变量的的值默认为地址进行编译;
指针与数组
int a[10];
int *p;
p=a;
//a[i]=p[i]=*(p+i)=*(a+i)=*(&a[i])=*(&p[i]);
//&a[i]=&p[i]=a+i=p+i;