
7个回答
展开全部
#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;
}
你自己想一下输出吧. 要考虑内存对齐问题
一个就是字符串带结束符,一个就是简单数组,其实记住就可以了,没有必要纠结
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并且赋值。就这样。
追问
你写的什么乱码我看不懂。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询