c语言字符数组初始化语法:char str[]=""与char str[]={}有何区别?

是否本质上一样?哪个更推荐使用?... 是否本质上一样?哪个更推荐使用? 展开
 我来答
百度网友ac5b271
2016-06-24 · TA获得超过127个赞
知道小有建树答主
回答量:282
采纳率:40%
帮助的人:88.4万
展开全部
#include<stdio.h>
int main()
{
char a[]="hel",b[]={'h'},c[]="h";
printf("%d %d\n",sizeof(a),sizeof(b));
printf("%s %s\n",a,b); //结果是啥呢
return 0;
}
你自己想一下输出吧. 要考虑内存对齐问题

一个就是字符串带结束符,一个就是简单数组,其实记住就可以了,没有必要纠结
更多追问追答
追问
最后一个输出我这里是hhel,如何解释?
追答
我是替后面的哥们回答的,你不是说要给一个异常的吗
你自己把变量的内存地址打印出来看下就明白了,所以要搞字符串打印,就得有结束符

追问:
18 分钟前
你把你的“异常”的运行截图发来瞧瞧?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-06-24
展开全部
呵呵,我给你翻译一下,你就明白了:charc;charstr[20]="CLanguage";这两行与charstr[20]="CLanguage",c;是等价的就是定义了两个变量,一个变量是字节c,另一个变量是字节数组str并且赋值。就这样。
追问
你写的什么乱码我看不懂。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式