简单c程序,但是不知结果为何出乱码

[复制链接]
查看11 | 回复5 | 2012-7-30 19:10:41 | 显示全部楼层 |阅读模式
因为字符串是以\0结尾的,而a[6]转化为字符串后长度还是6。你应该写成:#include main(){char a[7]={'a','b','c','d','e','f','\0'};printf("%s",a);}...
回复

使用道具 举报

千问 | 2012-7-30 19:10:41 | 显示全部楼层
因为数组往字符串转化的时候,最后一位应该为/n,也就是你定义的数组应该为a[7]...
回复

使用道具 举报

千问 | 2012-7-30 19:10:41 | 显示全部楼层
应该是a[7]={'a','b','c','d','e','f','\0'}; 要输出%s,字符串必须以\0结尾...
回复

使用道具 举报

千问 | 2012-7-30 19:10:41 | 显示全部楼层
你在main前面加上void, 你的程序在我这里运行正常,能正确显示字符串。你可以直接用gcc编译看看...
回复

使用道具 举报

千问 | 2012-7-30 19:10:41 | 显示全部楼层
在数组最后一个后加个‘\0’ 因为%s是要根据末尾0来判断是否结束...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行