如何区分定义整型数组、数组指针与指针数组?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2759个文字,预计阅读时间需要12分钟。
数组指针也称为行指针,定义如下:int (*p)[n]; 这里,p是一个指向整型一维数组的指针。它表示p指向一个整型数组,该数组有n个元素。
数组指针也称行指针定义int(*p)[n];()优先级高首先说明p是一个指针指向一个整型的一维数组这数组指针也称行指针
定义 int (*p)[n];
()优先级高首先说明p是一个指针指向一个整型的一维数组这个一维数组的长度是n也可以说是p的步长。也就是说执行p1时p要跨过n个整型数据的长度。
如要将二维数组赋给一指针应这样赋值int a[3][4];int (*p)[4]; //该语句是定义一个数组指针指向含4个元素的一维数组。 pa; //将该二维数组的首地址赋给p也就是a[0]或; //该语句执行过后也就是pp1;p跨过行a[0][]指向了行a[1][]所以数组指针也称指向一维数组的指针亦称行指针。指针数组定义 int *p[n];[]优先级高先与p结合成为一个数组再由int*说明这是一个整型指针数组它有n个指针类型的数组元素。这里执行p1时则p指向下一个数组元素这样赋值是错误的pa因为p是个不可知的表示只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *pa; 这里*p表示指针数组第一个元素的值a的首地址的值。如要将二维数组赋给一指针数组:int *p[3];int a[3][4];p; //该语句表示p数组指向下一个数组元素。注此数组每一个元素都是一个指针for(i0;i<3;i)p[i]a[i]这里int *p[3] 表示一个一维数组内存放着三个指针变量分别是p[0]、p[1]、p[2]所以要分别赋值。这样两者的区别就豁然开朗了数组指针只是一个指针变量似乎是C语言里专门用来指向二维数组的它占有内存中一个指针的存储空间。
本文共计2759个文字,预计阅读时间需要12分钟。
数组指针也称为行指针,定义如下:int (*p)[n]; 这里,p是一个指向整型一维数组的指针。它表示p指向一个整型数组,该数组有n个元素。
数组指针也称行指针定义int(*p)[n];()优先级高首先说明p是一个指针指向一个整型的一维数组这数组指针也称行指针
定义 int (*p)[n];
()优先级高首先说明p是一个指针指向一个整型的一维数组这个一维数组的长度是n也可以说是p的步长。也就是说执行p1时p要跨过n个整型数据的长度。
如要将二维数组赋给一指针应这样赋值int a[3][4];int (*p)[4]; //该语句是定义一个数组指针指向含4个元素的一维数组。 pa; //将该二维数组的首地址赋给p也就是a[0]或; //该语句执行过后也就是pp1;p跨过行a[0][]指向了行a[1][]所以数组指针也称指向一维数组的指针亦称行指针。指针数组定义 int *p[n];[]优先级高先与p结合成为一个数组再由int*说明这是一个整型指针数组它有n个指针类型的数组元素。这里执行p1时则p指向下一个数组元素这样赋值是错误的pa因为p是个不可知的表示只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *pa; 这里*p表示指针数组第一个元素的值a的首地址的值。如要将二维数组赋给一指针数组:int *p[3];int a[3][4];p; //该语句表示p数组指向下一个数组元素。注此数组每一个元素都是一个指针for(i0;i<3;i)p[i]a[i]这里int *p[3] 表示一个一维数组内存放着三个指针变量分别是p[0]、p[1]、p[2]所以要分别赋值。这样两者的区别就豁然开朗了数组指针只是一个指针变量似乎是C语言里专门用来指向二维数组的它占有内存中一个指针的存储空间。

