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

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

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

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

*(a+1)=a[1] 那么*(a+1)[1] = a[1][1] *(a+5) = a[5]

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

从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]的值。

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

当定义二维数组a[M][N]时,数组名可以认为是二维指针,其指向二维数组的首地址。 于是a的值就是首地址的值。 而*a,就是a[0],a[0]是第一行的标记,代表第一行的首地址。 在二维数组中,所有元素都是紧密排列的,这样整个数组的首地址,第一行的...

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