A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ambition 中级黑马   /  2015-5-11 13:07  /  1162 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>
int main()
{
        char name[] = "itcast";
        char name2[] ={'y','o','u',};
        printf("%s\n",name2);
        return 0;
} 这个提的输出结果不应该是“youitcast"吗?
我的怎么只是输出”you"是因为编译器的原因吗?

5 个回复

倒序浏览
我不知道该怎么回答你的问题。。。 你printf 打印的name2  不是打印name和name2  ,这样说你能理解么
回复 使用道具 举报
飞翔的猪 发表于 2015-5-11 14:25
我不知道该怎么回答你的问题。。。 你printf 打印的name2  不是打印name和name2  ,这样说你能理解么 ...

他的意思是 name2 没有截止标记\0 打印时应该会打印到name的截止标记那里 应该打印到 “itcast" \0不打印
回复 使用道具 举报
应该和编译器有关,我用C-Free结果是 ”you 乱码%@¥#¥itcast“ 用Xcode 结果就是”youitcast“了
回复 使用道具 举报
wzboy 发表于 2015-5-11 14:53
他的意思是 name2 没有截止标记\0 打印时应该会打印到name的截止标记那里 应该打印到 “itcast" \0不打印 ...

对呀我就是这个意思
回复 使用道具 举报
wzboy 发表于 2015-5-11 14:59
应该和编译器有关,我用C-Free结果是 ”you 乱码%@¥#¥itcast“ 用Xcode 结果就是”youitcast“了 ...

果然是这样 哈哈 谢谢!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马