00问答网
所有问题
“对二维数组a[3][4],a+1与a[1]都是数组第二行的首地址”是错的,为什么呢
如题所述
举报该问题
推荐答案 2014-01-04
a+1是第二行的首地址 它指向第二行,如果是(a+1)+1则指向第2行(从第0行开始数),a[1]指向第一行的第0个元素,指针指向列,a[1]+1则表示第一行的第一列元素(行和列都是从0开始)。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/0ZZnDZZreTZeZreejn.html
其他回答
第1个回答 2014-01-04
类型的问题。
a+1是个地址没错,因为数组名被自动转换为地址并参与+运算;
但a[1]是个一维数组对象,你用sizeof对比一下它们两个就知道了。
相似回答
a+1
表示
a数组的第二
个元素
的首地址
吗?
答:
不对。若有定义:int a[5],则
a数组
中首元素地址可以表示为a,a[0],*(a+0),*a,&a[0]。数组及数组元素的地址表示为:a
是二维数组
名,也是二维数组0
行的首地址
,等于1000。a[0
]是第一
个一维数组的数组名和首地址,因此也为1000。(a+0)或*a
是与a[
0]等效的,它表示一维
数组a[
0]0...
请问下面两个
数组
定义错了吗?
答:
首先你要理解二维数组的真正含义,它的第一维就是一组数据的起始
地址,第二
维就是某组数据中的某个值.其次,你要知道
a[][4]
所表达的意思,是指
二维数组a的
每一维都是由4个元素组成的一维数组.而编译器可以根据你赋给a的初值个数计算它的第一维长度(元素总个数/4,如果不能整除,则长度加1,此时还...
关于C语言中
二维数组的
问题。
答:
a[0]是一维指针,其指向
数组a[
0][0],a[0
][1],a[
0
][2
]
的首地址,
也就是a[0][0]的地址。最后,a也是指针,只不过他是二维指针,其中存储的也是地址,向上面一样,他存储的是a[0]的地址。所以他们之间并不
是什么
包含与被包含的关系。他们之间仅仅是一个指向的关系。
C语言的问题。。。关于
二维数组的
。。。
答:
同理
,a+1是
二维
数组1行的首地址,
等于1008。
a[1]是第二
个一维数组的数组名和首地址,因此也为1008。&
a[1][
0]
是二维数组a
的1行0列元素地址,也是1008。因此a+1
,a[1],
*(a+1),&a[1][0]是等同的。由此可得出:a+i
,a[
i],*(a+i),&a[i][0]是等同的。此外,&a[i]
和a[
i]...
大家正在搜
以下对二维数组a进行正确说明的是
对二维数组a的正确定义是
二维数组a是什么
以下对二维数组a的正确
对于已正确定义的二维数组a
对二维数组a进行如下初始化
以下能对二维数组a进行正确
下列不能对二维数组a进行正确
对二维数组a进行正确初始化
相关问题
对二维数组a[3][4],a+1与a[1]都是第一行的首址对...
在C语言中,二维数组a[3][4]中,&(a+1)表示什么?
C语言中的二维数组里a+1和*(a+1)为什么都是地址
C语言中二维数组中指针的问题
在指针中,先定义int a[3][4],则a+1和&a[1]...
二维数组a[3][3]中p=a,当++p后为什么指向的是a[...
多维数组int a[3][3];*a和a是相同的地址,为什么...
若有定义:int a[3][4];,不能表示数组元素a[1]...