永发信息网

一个数组a[]代表,a代表数组首地址,那么为什么输出a时,会把所有数组中的东西都输出出来呢

答案:3  悬赏:60  手机版
解决时间 2021-03-05 03:26
一个数组a[]代表,a代表数组首地址,那么为什么输出a时,会把所有数组中的东西都输出出来呢
最佳答案
什么类型的数组?若是char类型的就能输出,其他类型的不行,比如
char a[]="kkk"; //会输出全部的k
char b[]={'a','b'}; //会输出a,b直到遇到结束符才结束输出
这是C语言的特性,当指针指向的是char类型时,直接输出指针,会导至输出指针指向的字符直到遇到字符串结束符为止。
再如
char c='a';
char *p=&c;
同样会输出一大堆东西。
全部回答
数组a[]的a的确代表数组的首地址,但“为什么输出a时,会把所有数组中的东西都输出出来”的原因不在于a,而在于你使用的输出函数。你若用了C里的printf(),如果你在双引号间用%s来“指示”它输出,它就会输出一大串东西;而若用%c来控制,它就只输出首地址那一个单元中的数据。要知道那些控制符其实是调用了库函数来操作数据的!C++中的cout <<看起来没有控制符,但它是自动检测数据的类型的,然后决定怎么个输出法;如果拿不准了就报错……所以,输出什么,怎么输出,并不是完全由原来的数据决定,而是看你想输出什么模样的东西!
在c中,二维数组可以看成是多个一维数组叠加构成的,如: int a[3][4]; //就可以看成是3个具有4个元素的一维数组叠加而成 那么,a[0]就是第0行元素的地址,a[1]即为第1行元素的地址,... 但是a[0],a[1],a[2]这3个名称又构成一个数组,其名为a,a为a[0]的地址,a+1为a[1]的地址... 所以也可以说,a、a+1、a+2是二维数组的行地址,a[0]就是*a,就是二维数组的第0行的元素地址,...
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1000左右买什么技嘉的主板 求大神指点
什么是公众对讲机?使用公众对讲机需要办理哪
苹果电脑上能实现和SPSS同样的统计功能吗?
同时在A、B两家单位就职,在A公司缴纳五险,
身份证刚刚办了一个可能下来了…但还没去取…
在微信里的个人资料中,怎样不让对方看见自己
【小石城山记阅读答案】小石城山记阅读答案1.
大小S是双胞胎吗?知道的告诉下
金三角酒楼在什么地方啊,我要过去处理事情
有汝如此,吾复何求?
人类测试到的大海最深处是多少米?
世界上的山脉主要分布在哪两个地方
misfit ray 来电提醒耗电吗
甲醛怎么能有效的清除?
这是在佛山的哪?
推荐资讯
“足”字上面加一横读什么?
Lowb文化是什么意思?
京东到家收到来历不明的订单
请问卡西欧登山表的指针/液晶双显系列有什么
前端三大框架是什么
uu 阳性mh阴性正常吗
梦见自己的骨头
对象考公务员失败了心情特别不好,怎么办?我
康明斯315发动机机油进水都那也可能
命中缺水,做什么生意好
同体积的水和酒精压力与压强相等吗?
宿迁浩宸电梯安装工程有限公司在哪里啊,我有
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?