百度试题 结果1 题目假如a[i][j]表示一个二维数组,那a[i]表示的是什么?是a[i][j]的第i行所有元素吗?相关知识点: 试题来源: 解析 a[i]表示 a[i][0] a[i][j]是所有元素 反馈 收藏
是地址。比如说是字符类型a[][],可以看成是第二字符串的第一个字符的地址,++a[1]表示第二字字符的地址。相当于一维数组的a。
语句中 a[1] 表示 地址 &a[1][0], a[2] 表示 地址 &a[2][0].即二维数组a 的 第2行 元素 的 首地址 和 第3行 元素 的 首地址。
确切地说,a[1]应该是代表第二行地址。但应该也可以表示a[1][0]元素。
二维数组名是一个指向一个一维数组的指针,a是一个二维数组名,就是一个指向一维数组的指针,一个这样的指针求间接运输(*a),得带的是这个指针所指向的一维数组的数组名,在此是 a[0], 数组名加一个下标就是数组元素值,(*a)[1]就是 第0行数组的第1个元素 a[0][1]-->2 a[1]->...
你的理解是正确地。老师应该是口误。
&a[1]编译不通过 a[1]是指数组第二行的首地址,这是立即数,不是变量,对此类型取址无意义,故编译不通过。我举个例子:a=1,b=2,我问你a+b的地址。
在C语言中规定,数组名代表的是数组首元素地址。如有定义int a[10][100];a表示二维数组的数组名。a也是这个数组的首地址。因此,在二维数组中*(a+i)表示的是第i+1行0列元素的地址,即a[i][0]的地址。而a+i表示的是第i+1行的首地址。
二维数组元素的地址二维数组元素的地址可以由表达式&a[i][j]求得;也可以通过每行的首地址来表示.以上二维数组a中,每个元素的地址可以通过每行的首地址:a[0]、a[1]、a[2]等来表示.如:地址&a[0][0]可以用a[0]+0来表示,地址&a[0][1]可以用a[0]+1表示;若0≤i<3、0≤j<4,则a[i][j]的...