c语言中,数组名的前面加*, 如a[3][4]; *a输出的是什么结果

c语言中,数组名的前面加*,如a[3][4];*a输出的是什么结果... c语言中,数组名的前面加*, 如a[3][4]; *a输出的是什么结果 展开
 我来答
花儿朵朵online
2018-09-15
知道答主
回答量:16
采纳率:0%
帮助的人:3.9万
展开全部
由于a[3][4]是个二维数组,数组名是数组的首地址,也是一维a[3]的首地址,也是一维第一个元素a[0][0]的首地址,因此a a[0] a[0][0]三个的地址是相同的,那么*a在这里代表什么呢,*在这里代表的是取值符,而不是指针符号,由于a是个二维数组,*a代表的是取第一维的首元素,而这里一维里的元素本身又是一个一维数组,因此在a的第一维中是存放着三个一维元素的首地址,显然*a取到的就是第一维里第一个元素的首地址了,*(a+1)就是取到第一维里第二个元素的首地址了,你可以建一个一维数组int arr[] = {1,2,3}测试一下,在一维数组中,*arr代表的就是取第一个元素的值,它的值是个int型数值,也就是第1个元素1,而二维数组中的a[3]里存放的是三个元素(3个一维数组)的首地址,因此得出一个结论,二维数组里的第一维就是一个指针数组,每个指针指向三个元素(3个一维数组)的首地址。从而**a就是取第一维里第一个元素(1维数组)里的第1个元素的值。
建氏文生
推荐于2018-04-26 · 永远在学习的道路上不断前进
建氏文生
采纳数:499 获赞数:1345

向TA提问 私信TA
展开全部
在 C 语言中,数组和指针是可以互相交换的。
根据语言标准,*a 和 a[0] 具有大致相同的效果。

在现行标准与真正的实现中,数组也是往往转化位其首元素的指针来操作的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风送来你的背影
2015-08-12 · 超过21用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:33.6万
展开全部
*a是指的数组的第一列。
追问
*不是指针的意思么,为什么可以用在数组
追答
是指针啊。*a指的是数组的第一列数据的地址。如a[0],a[1],a[2]。
*a[0]则是指从a[0][0],递增输出就把第一列的数据输出来了。

同理,可以把其他数据输出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式