C语言关于二维数组指针表示方法

intarray[4]={1,2,3,4};那么根据定义知道数组名称array就是这个数组的首地址=array[0]=&array[0][0]那么为什么用printf("... int array[4]={1,2,3,4};
那么根据定义知道数组名称array就是这个数组 的首地址 = array[0]=&array[0][0]
那么为什么 用printf("%p,%p",array,*array) 这俩个结果相同 也就是 array所表示的地址 与*array值是相同的
正常来说 *array 不应该等于 *&array[0][0]=1 吗 这点我就没明白 而且 **array经过输出是等于1的 很不理解

我的问题就是 *array为什么还是 数组的首地址?

刚才 问的问题 按错键了 就采纳了 这回 哪位大神帮帮我.
展开
 我来答
kaixingui2012
2014-12-29 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6399万
展开全部
int array [][4] = { {1,2,3,4} } ; //这样才对!
那么根据定义知道数组名称array就是这个数组 的首地址 = array[0] = &array[0][0]
array 数组首地址

array[0] 第一行地址 ==*array
&array[0][0]第一个元素的地址
array相当于二维指针,*array就是变量array当前的值,是个地址。当array是数组首地址时,*array就是第一行的地址。
梦舞湖畔
推荐于2016-11-17 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:109万
展开全部
虽然说“首地址 = array[0]=&array[0][0]”,这只代表他们的值相同,意义不同的。

array是二维指针变量,array[0]是一维指针变量,&array[0][0]是变量的地址。
*array 表示二维指针前加* 等于一维指针array[0],值还是以前的值,但是意义不同。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式