www.zhnq.net > 行指针的定义

行指针的定义

其实行指针和指针是没多大区别的 你可以把二维数组看作叠起来的一维数组 例如:int a[4][4]; int *p=a;*p还只是他的第一行的首地址相当语a[0];只是**p才是a[0][0]

有区别的,第一个里面是数组指针 该指针指向的数组中所有数据都是int(p是一个指针,指向的是一个含有三个元素的整形数组).第二个里面p是一个指针数组的数组名,这个数组里面存的是整形的指针.

行指针是一种形象的说法,比如现在有x行x列的表格.p指针指向第一行,行指针特点就是比如p+1,那么p就指向下一行的首地址.普通指针+1 就指向下一个,注意是下一个地址.行指针是指向下一行.数组指针就是一个数组的地址,行指针出

指针数组表示一个数组里存放的元素都为指针;行指针即数组指针表示的是一个指针,它指向该数组.

&在任何时候都不能寻址, 它是用来取地址的.p[i]在任何时候都等价于*(p+i) p[i][j] (其中p是int*[x]类型的)在任何时候都等价于*(*(i*x)+j) x是一个变量.int a[10][20] 这里x = 20 int a[20][10] 这里x = 10 C语言没有什么行指针, 列指针.一维数组就是一级指针,二维数组是特殊的二级指针,以此类推

#include <stdio.h> /* 可以,如下 */ int main() { int (*p)[2][2]; // p 定义为可以指向一个 2 * 2 的 二维数组 int nA[2][2][2] = {{{1,2},{3,4}},{{5,6},{7,8}}}; // 三维数组 p = nA; // p 能指向一个三维数组的首地址 printf("%d\n",(*(p+1))[1][1]); // 指针增量为 2 * 2 的 二维数组大小 return 0; }

区别:c语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,所以数组在c语言的定义中只是一组同类型的普通变量,即使这个变量有可能是指针.所以他的作用比指针小的很多,而指针可以指向任何区的任何数据,所以就

行指针其实就是二级指针,也就是说它指向一个一维数组,int a[2][3]; a[0] a[1] 就是行指针 这么看就明白了 int a[][3]={a[0],a[1]} 而a[0] a[1]本身又是一个数组

行指针:p = a;数组指针:p[0] = a[0];p[1] = a[1];你的叫法跟我有些差异,我弄了半天..行指针是一个指向数组的指针,而数组指针是一个元素为指针的数组.

定义数组a为整型 定义指向整型的指针变量p,整型变量i 依次输入十个整数 下一个循环,首先p指向数组首地址,即指向数组第一个元素,然后p依次加一,移向下一地址, 即指向数组下一个元素 依次打印输出

网站地图

All rights reserved Powered by www.zhnq.net

copyright ©right 2010-2021。
www.zhnq.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com