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]的首地址。这样在使用的时候就有...

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

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

是下标为[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[1] 那么*(a+1)[1] = a[1][1] *(a+5) = a[5]

int a[5]={1,2,3,4,5}; a[0]=1; *a[0]为他的地址;

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

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