关于c语言中二维数组的指针问题

一个二维数组 int zippo 【4】【2】
抱歉手机上标点符号没弄出来将就着看吧
然后就写了个程序测试 求得
zippo=ox0064fd38,zippo+1=ox0064fd40
zippo【0】=ox0064fd38 zippo【0】+1=ox0064fd3c
问题一:zippo的值应该是数组首元素也就是
zippo【0】的地址,zippo【0】的值应该是zippo【0】【0】的地址,那为啥这两者相等了呢?
问题二:zippo+1的值为zippo【1】的地址,那应该是往后挪了两个int单位,为啥只在数值上加了2?

c

2个回答

问题一:
zippo 表示的地址=zippo[0]表示的地址=zippo[0][0]表示的地址 他们在不做任何处理的情况下表示的都是数组首元素的地址
问题二:
这个地址是以16进制表示的 从38到40 应该是8位不是2

weixin_40993974
weixin_40993974 回复vB_Gg: 嗯嗯 懂了 谢谢
2 年多之前 回复

问题一,在二维数组中,arr,arr[0]和arr[0][0]地址是相同的,但是表示的含义不同,你可以把他们放在sizeof里面看一下大小,是有区别的!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问