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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么输出结果是 ok???是因为6.2Xcode的原因吗?
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char name[] = "it\0cast";
  5.    
  6.     char name2[] = {'o', 'k'};
  7.    
  8.     printf("%s\n", name2);
  9.    
  10.     return 0;
  11. }
复制代码

评分

参与人数 1黑马币 +20 收起 理由
湛添友 + 20 神马都是浮云

查看全部评分

8 个回复

正序浏览
楼主你这个问题我之前也问过,你可以看看之前的帖子
http://bbs.itheima.com/thread-183770-1-1.html
回复 使用道具 举报
四头 中级黑马 2015-4-14 20:02:39
8#
没有理由呀!应该就是okit呀!'\0'没有这个字符结束语,程序会按照从起始点o一直找到'\0'结束。
回复 使用道具 举报
是okit,但是以前有人跟你一样的情况,有人给了回答。
回复 使用道具 举报
梦想中前行 发表于 2015-4-13 10:14
以前有人问过这个问题,应该是内存的问题。你翻翻以前的帖子,有解释的。答案是okit ...

我重新 看一遍视屏 输出应该是 okit没错的啊 ~~:L
回复 使用道具 举报
字符串ok没错啊
回复 使用道具 举报
原因是:name2的这种写法,如果name2[ ] = {'O','K'};这种方式在字符串的最后不回添加'\0',所以不结束,%S输出时,会一直向后找得。可以查看sizeof所占的字节为2
回复 使用道具 举报
以前有人问过这个问题,应该是内存的问题。你翻翻以前的帖子,有解释的。答案是okit
回复 使用道具 举报
楼主,%s代表输入字符串。结果是ok,没错的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马