你好,世界.区别是什么,哪个是正确的



我见过两个版本的"你好,世界"并且它们略有不同。问题是:哪一个是对的?

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
}

最新更新