不小心我在一个声明中有多个cout。
cout<<5<<cout<<6;
它显示了一些垃圾,我意识到我的错误。但为什么在这种情况下没有错误或警告?我正在使用带有mingw for windows的codeblocks IDE。
编辑:完整的代码是
#include <iostream>
using namespace std;
int main(void)
{
cout<<5<<cout<<6;
return(0);
}
构建消息是
mingw32-g ++。exe -Os -pedantic -Wextra -Wall -c“C:\ Study Materials \ C ++ \ CPP Programs MP Compiled \ inputOutput \ q1.cpp”-o“C:\ Study Materials \ C ++ \ CPP Programs MP Compiled \ inputOutput \ q1.o“mingw32-g ++。exe -o”C:\ Study Materials \ C ++ \ CPP Programs MP Compiled \ inputOutput \ q1.exe“”C:\ Study Materials \ C ++ \ CPP Programs MP Compiled \ inputOutput \ q1.o“ - std = gnu99进程终止,状态为0(0分钟,2秒(秒))0错误,0警告(0分钟,2秒(秒))
为什么编译器会警告你一些完全合法的东西?您正在指示程序输出cout
的内容,这是合法的,并且将起作用。
我不确定operator <<
是如何为cout
定义的,但打印它的地址将是我的期望,所以像0x489944
(或更长的)似乎恰到好处。
在它周围的5和6,你的输出似乎是正确的:5
+ 0x489944
+ 6
= 50x4899446
也许你没有看到任何错误
cout
在C中是完全合法的。这意味着编译器不会告诉你任何错误,因为没有错!
这意味着不会显示错误。