mdsk.net
当前位置:首页 >> C语言二位数组A[1]表示什么 >>

C语言二位数组A[1]表示什么

二维数组形式: 定义一个二维数组如 char a[x][y]; 表示a数组一共有x行,每一行有y列,此时如果这样写a[n],表示取这个数组的第n行的首地址。例如 有如下定义: char a[3][20] = {"hello", "world", "you"}; 表示a[3][20]数组一共是3行,每行占用...

语句中 a[1] 表示 地址 &a[1][0], a[2] 表示 地址 &a[2][0]. 即二维数组a 的 第2行 元素 的 首地址 和 第3行 元素 的 首地址。

对于二维数组名a和*a,二者的区别在于类型不同。 对于 TYPE a[M][N]; 当使用a时,可以等同于二级指针TYPE **型。 而使用*a时,等同于TYPE*型。 从概念上说,a表示二维数组a的首地址,而*a表示二维数组a第一行a[0]的首地址。这样在使用的时候就有...

表示这是一个二维数组, 第一维度上有4行, 每行有 不确定的第二维度数值, 具体理解 形如, a[0][0], a[0][1],a[0][2]......a[0][x] (x大小未知) a[1][0], a[1][1,a[1][2]......a[1][x] a[2][0], a[2][1,a[2][2]......a[1][x] a[3][0], a[3][1,...

是下标为[3][0]的那个元素的值。因为[]的优先级比*高,所以*(a+1)[2]被解释为*((a+1)[2])——二维数组a中,a是第0行的第0个元素的地址,a+1自然是第1行的第0个元素的地址,(a+1)[2]实际上就是再向后移两行那一行的元素指针,可用*(a+1+2)=*(a+3)表...

从0起算,*(*(c+1)+1)是第1行的第1个元素的值。即若有数组c[3][3]={{1,2,3},{4,5,6},{7,8,9}};,则*(*(c+1)+1)=5,也就是c[1][1]的值。

*(a+1)相当于a[0][1], *(a+5)相当于a[0][5]已经越界了

二维数组, int a[10][20]; a是一个指针的指针, 即二级指针. 一个指针加一个数, 当然还是指针(即a+1是指针) 取值一个二级指针, 是一级指针(即指针), 所以还是指针, 不过类型发生了变化. a+1的类型为int *[10]. 而*(a+1)的类型则为int *, 也就是平...

它们只是值相等,但类型不相等,不能说它们相等。 a+1是int **类型,指向的是数组a的第二行的起始地址; *(a+1)是int *型,指向的是数组a的第二行第一个元素的地址。

它们只是值相等,但类型不相等,不能说它们相等。 a+1是int **类型,指向的是数组a的第二行的起始地址; *(a+1)是int *型,指向的是数组a的第二行第一个元素的地址。

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com