①取变量的地址 用&
int num=100;
printf("%p\n",&num);//&num代表标量num的起始地址
结果
*②定义一个指针变量,保存num的地址; 在定义的时候:说明p是指针变量 而不是普通变量
int num=100;
int *p=NULL;
p=#//num的地址与p建立联系
printf("%d",*p);//在使用中:*p表示去p保存的地址编号对应空间的内容
结果
③指针的形式
自身的类型:int *p;自身的类型就是int *。
指向的类型:int *p;指向的类型就是int。int ****p;指向的类型就是int ***。
指针变量指向的类型的作用:决定了指针变量所取空间内容的宽度;决定了指着变量+1跳过的点位跨度。
(1)指针变量的跨度
int num=100;
int *p=NULL;
p=#
printf("&num=%u\n",&num);
printf("p=%u\n",p);
printf("p+1=%u\n",p+1);
结果
int类型为4字节,指针变量的跨度为4字节。
(2)所取内容的宽度
int num=0x01020304;//16进制2位一个字节
int *x1=#
printf("*x1=%#x\n",*x1);//int 4字节
short *x2=#
printf("*x2=%#x\n",*x2);//short 2字节
char *x3=#
printf("*x3=%#x",*x3);//char 1字节
结果
2020/04/04 致敬英雄