黑马程序员技术交流社区
标题:
发现一个惊人的char类型占位:大牛会吗?
[打印本页]
作者:
hei军
时间:
2015-11-19 19:33
标题:
发现一个惊人的char类型占位:大牛会吗?
char ch[10]={'i','love','you'};
for(int i=0;i<10;i++){
printf("%d",ch[10]);
}
原来当char类型的元素中多出来的字母都会省略,只会打印相应的最后一个字母
结果:i e u
作者:
hei军
时间:
2015-11-19 19:36
其实这也不是什么大问题 , 好像就是有点丢失精度的问题
作者:
红龙果
时间:
2015-11-19 19:57
char c='hello';
printf('%c',c);//输出结果为o
应该是对c赋值时,先赋值为h,然后e,最后为o
作者:
煌龙
时间:
2015-11-19 20:43
你的用%S打印啊,%S才是打印字符串数组的,%C是单个字符,hello之所以是O因为前面的全部覆盖了
作者:
hei军
时间:
2015-11-22 12:12
红龙果 发表于 2015-11-19 19:57
char c='hello';
printf('%c',c);//输出结果为o
谢了 ,刚看了确实是有很多问题
作者:
649685603
时间:
2015-11-22 22:08
分工会根据客户即可回家客户即可
作者:
一枚小刁民
时间:
2015-11-23 14:43
直接用%c就好啦
作者:
linexs
时间:
2015-11-23 15:51
char []数组,撸主这样赋值不规范,单引号会塞不进去
作者:
触底反弹
时间:
2015-11-23 17:03
数组就只给了一个字节,你反复覆盖掉了前面的内容
作者:
一曲繁华尽
时间:
2015-11-23 18:42
。。。这还惊人
基础没掌握好
双引号内的内容是字符串 单引号内的内容是单个字符
所以你定义的数组只有ch[0]ch[1]ch[2]中有内容 分别是 i e u
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2