我见过两个版本的"你好,世界"并且它们略有不同。问题是:哪一个是对的?
VS社区中的机器应用:
#include <iostream>
int main()
{
std::cout << "Hello World!n";
}
拉奥;С++1小时一天";(2017(:
#include <iostream>
int main ()
{
std::cout « "Hello World!" « std::endl;
return 0;
}
#include <iostream>
int main()
{
std::cout << "Hello World!n";
}
这是绝对正确的。main()
函数是一种特殊情况,因为没有从中返回任何值;如果在没有return
的情况下到达main()
的末尾,则假定返回值为0
。
#include <iostream>
int main ()
{
std::cout « "Hello World!" « std::endl;
return 0;
}
首先,这是严重的(不一致的(缩进。
函数名和参数列表的(
之间有空格是不常见的,但却是合法的。
它还使用'«'
('xab'
(而不是<<
,这可能是您的拼写错误——如果不是,那就是语法错误,因为C++无法理解'«'
。
它使用std::endl
而不是n
。这是一个更困难的案例。
将std::endl
写入ostream
会做两件的事情——写一个换行符,并刷新输出缓冲区。而写入"n"
仅保证写入换行符;它是否刷新缓冲区取决于流的缓冲策略。
输出流可以是无缓冲的(每个字节都立即写入(、行缓冲的(缓冲区在每次写入新行时或满时刷新(或完全缓冲的(缓冲区满或显式刷新时刷新(。
输出流默认为行缓冲,除非实现可以断言输出是而不是交互式设备。。。不包括您的终端(是交互式设备(。
因此,无论你写std::endl
还是"n"
都没有区别。。。除非它在哪里。在这种特定情况下,如果您在std::cout
之后退出程序,则不会产生任何影响——任何输出流都将在程序退出之前被刷新。
return 0;
是可选的,正如我之前所说。把它放在那里并不伤人,就我个人而言,我更喜欢把它写出来,因为我不依赖任何东西;特定的";并且不使不知道CCD_ 20的隐含CCD_。您的里程数可能有所不同。
关于main()
的旁注:在C中,用空参数列表声明的函数可以用任意数量的参数调用。这是古代K&R风格。如果你想确保一个函数只能在没有参数的情况下调用,那么在C中,你必须用( void )
作为参数列表来声明它,即int main( void )
。这是推荐的做法。
在C++中,int main()
和int main( void )
是同一事物,写出void
并不常见。
main()
不需要return 0
,除非您想在控制到达结束之前结束程序。例如:
#include <iostream>
int main()
{
int i = 0;
while (true)
{
if (i < 10) i++;
else return 0; // Ending program before control reaches the end
std::cout << "Hello World!n";
}
// But at the end of control, return 0 is not necessary
}