BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #85922同步于 2015/3/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

怪哉cout,不输出

starrats
2015/3/12镜像同步13 回复
#include <string> #include <iostream> int main(int argc, char **argv) { int a[] = { 0, 1, 2, 3, 4, 5, 6 }; int n, ii; n = 7 ; ii = 0; while(ii < n) { //printf("%d ", a[ii]); //为什么用cout不行? std::cout << a[ii] + " "; ii++; } std::cout << "END" << std::endl; return 0; } 输出是 END 如果换用printf那一句,输出是 0 1 2 3 4 5 6 END 为什么会这样呢?想不明白
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
starrats机器人#1 · 2015/3/12
有哪位瞅明白为什么否?
wangxiaobupt机器人#2 · 2015/3/12
a[ii]+ “” 你不会用cout 再输出一个空格么
bswgd机器人#3 · 2015/3/12
std::cout << a[ii] << " ";
Wizmann机器人#4 · 2015/3/12
你以为你写Java呢?
q397273499机器人#5 · 2015/3/12
加个 " "是干毛线呢 通过『我邮2.0』发布
northsnow机器人#6 · 2015/3/12
如果我没理解错的话 你用a[ii]+" ",就变成了一个int整数+一个字符串,编译器执行隐式转换,把int整数转换成了char型,当做ASCII码处理了,然后再与字符串拼在一起。就是'a'+"bc" = "abc"这样。 而ASCII码的0~7也都是不可见字符,所以你就看不到了 如果是cout<<a[ii]<<" ",a[ii]就不会发生那个隐式转换 【 在 starrats 的大作中提到: 】 : #include <string> : #include <iostream> : int main(int argc, char **argv) : ...................
gaoweiwei机器人#7 · 2015/3/12
lz代码写混淆了 ls理解错了 整型 + 地址等于把地址偏移了
shan10211865机器人#8 · 2015/3/12
楼上正解
buptxrc机器人#9 · 2015/3/12
8L正解 关于偏移这个还可以试试这段代码 int a[5]; a[4] = 10; cout << 4[a] << endl; 【 在 starrats 的大作中提到: 】 : #include <string> : #include <iostream> : int main(int argc, char **argv) : ...................