二级指针:可以理解为指向指针的指针,存放的是指针变量的地址. 下面用一级指针来保存一个指针变量的地址: #include<stdio.h> int main() { int *p1; int *p2; int data; p1=&data; p2=&p1; printf("p1保存的地址=%p\n",&data); printf("data=%d\n",*p1); printf("p2的地址=%p\n",&am…
定义一个数组指针,指向二维数组: int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int (*p)[4];//定义二维指针数组 p=a;//指向二维数组,数组指针等同于二维数组名 #include<stdio.h> int main() { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int (*p)[4];//定义二维指针数组 p=a;//指向二维数组 for(int i=0;i<3;i…
C 语言中指针的操作非常灵活,它也能指向结构体变量对结构体变量进行操作.在学习结构指针之前,需要再次加深对指针的认识.声明指针变量时所使用的数据类型修饰符实际上的作用是定义指针访问内存的范围,如果指针定义为整型,那么该指针访问内存的范围就是整型变量在内存中所占用的空间大小.虽然每次尝试将指针变量所在存储的内存地址输出会发现,任何类型的内存地址长度都一样,但不同类型间不能相互复制,只有空值型除外.因此在使用指针操作结构体时,一定要确定指针所定义的数据类型与结构体的数据类型相同. 7.3.1 指向结…