C语言,为什么字符串类型的数组,可以用数组名对数组进行整体输入个输出,请举例

 我来答
寒寒家
推荐于2017-05-24 · TA获得超过2921个赞
知道大有可为答主
回答量:1482
采纳率:100%
帮助的人:1990万
展开全部
咱们分析下:
字符数组中如果保存的是字符串,比如
char tar[20] = "hello"; 要知道字符串默认的是以'\0'结尾的,所以这里隐含的最后还有一个'\0'

而printf("%s", tar); 这个语句,在执行的时候,是从tar指向的字符开始输出,一直输出直到遇到第一个'\0'为止。 所以会输出hello.

而如果tar[20] = {'h', 'e', 'l', 'l', 'o'};
那么这个时候printf("%s", tar);同样的还是从第一个元素开始输出,还是到‘\0'为止,但因为这里没有'\0'就还接着往后输出,而之后的内容,已经不再是该数组的空间,所以将会输出不可预测内容了。
更多追问追答
追问
我的意思是为何字符串可以,其他类型就不可以用数组名输入输出
例如double
2一瞬间2
2015-01-09 · TA获得超过621个赞
知道小有建树答主
回答量:677
采纳率:0%
帮助的人:352万
展开全部
int a; scanf("%d", &a);这里需要地址符&
char str[10]; scanf("%d", str); 可以理解为“地址”
追问
那输出可以举例不
追答
printf("%d,%s\n",a, str);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
或许可能大概3
2018-06-17
知道答主
回答量:1
采纳率:0%
帮助的人:862
引用flytomylife的回答:
咱们分析下:
字符数组中如果保存的是字符串,比如
char tar[20] = "hello"; 要知道字符串默认的是以'\0'结尾的,所以这里隐含的最后还有一个'\0'

而printf("%s", tar); 这个语句,在执行的时候,是从tar指向的字符开始输出,一直输出直到遇到第一个'\0'为止。 所以会输出hello.

而如果tar[20] = {'h', 'e', 'l', 'l', 'o'};
那么这个时候printf("%s", tar);同样的还是从第一个元素开始输出,还是到‘\0'为止,但因为这里没有'\0'就还接着往后输出,而之后的内容,已经不再是该数组的空间,所以将会输出不可预测内容了。
展开全部
最佳答案好像有错,tar s[20]={'c','h'}
会把后边未定义的18个元素自动初始化为空字符。可以直接用字符串输出格式输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式