(C语言)谁知道这样编译输出为什么会出错?

[复制链接]
查看11 | 回复2 | 2010-12-2 22:43:41 | 显示全部楼层 |阅读模式
#include
main()
{
char aa[4]="chen";
char bb[5]="cheng";
printf("%d %d\n",strlen(aa),strlen(bb));
printf("%s %s\n",aa,bb);
}
这样输出字符串长度和字符串都不对,貌似把4和5改成5和6(即变成更大的数)输出就没错了。。这是为什么呢?

回复

使用道具 举报

千问 | 2010-12-2 22:43:41 | 显示全部楼层
这个。。。 因为数组的最后要存储一个\0
但是你写的那个程序已经没有存储空间了 所以出错
回复

使用道具 举报

千问 | 2010-12-2 22:43:41 | 显示全部楼层
#include#includemain(){char aa[5]="chen";char bb[6]="cheng"; printf("%d %d\n",strlen(aa),strlen(bb));printf("%s %s\n",aa,bb);}printf要使用#i
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行