网站的跟目录,用手机做网站的app,做网站设计师好吗,中国域名后缀是什么数组指针和指针数组的区别 - hongcha_717 - 博客园www.cnblogs.com数组指针#xff08;也称行指针#xff09;定义 int (*p)[n];()优先级高#xff0c;首先说明p是一个指针#xff0c;指向一个整型的一维数组#xff0c;这个一维数组的长度是n#xff0c;也可以说是p的…数组指针和指针数组的区别 - hongcha_717 - 博客园www.cnblogs.com数组指针也称行指针定义 int (*p)[n];()优先级高首先说明p是一个指针指向一个整型的一维数组这个一维数组的长度是n也可以说是p的步长。也就是说执行p1时p要跨过n个整型数据的长度。如要将二维数组赋给一指针应这样赋值int a[3][4];int (*p)[4]; //该语句是定义一个数组指针指向含4个元素的一维数组。 pa; //将该二维数组的首地址赋给p也就是a[0]或a[0][0] p; //该语句执行过后也就是pp1;p跨过行a[0][]指向了行a[1][]所以数组指针也称指向一维数组的指针亦称行指针。指针数组定义 int *p[n];[]优先级高先与p结合成为一个数组再由int*说明这是一个整型指针数组它有n个指针类型的数组元素。这里执行p1是错误的这样赋值也是错误的pa因为p是个不可知的表示只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *pa; 这里*p表示指针数组第一个元素的值a的首地址的值。如要将二维数组赋给一指针数组:int *p[3];int a[3][4];for(i0;i3;i)p[i]a[i];这里int *p[3] 表示一个一维数组内存放着三个指针变量分别是p[0]、p[1]、p[2]所以要分别赋值。这样两者的区别就豁然开朗了数组指针只是一个指针变量似乎是C语言里专门用来指向二维数组的它占有内存中一个指针的存储空间。指针数组是多个指针变量以数组形式存在内存当中占有多个指针的存储空间。还需要说明的一点就是同时用来指向二维数组时其引用和用数组名引用都是一样的。比如要表示数组中i行j列一个元素*(p[i]j)、*(*(pi)j)、(*(pi))[j]、p[i][j]优先级()[]*