2.3.4 “Hello, World!”

现在,终于写出第一个程序:

2.3.4 “Hello, World!” - 图1

通过“<<”操作符把一系列的参数传递给cout对象。然后cout对象按从左向右的顺序将参数打印出来。输入输出流函数endl表示一行结束并在行末加上一个换行符。使用输入输出流,可将一系列的参数按顺序排起来,使类易于使用。

在C语言中,用双引号括起来的正文称为“字符串”(string)。标准的C++类库有一个专门用于正文处理的功能强大的string类,所以我们将使用更精确的术语“字符数组”(character array)来描述双引号之间的正文。

编译器为字符数组分配存储空间,把每个字符相应的ASCII码存放到这个空间中。编译器在字符数组后自动加上含“0”值的额外存储片,标志数组结束。

在字符数组内,通过使用“转义序列”可以插入一些特殊的字符。转义序列是由反斜杠(\)跟上一个特殊的代码组成。例如,“\n”意思是换行。编译器手册或是C语言指南给出了一组完整的转义序列,其他包括“\t”(跳格),“\”(反斜杠),“\b”(空格)。

注意,一条语句可占多行,整条语句以分号结束。

字符数组变量和常数混合出现在上述cout语句中。使用cout语句时,操作符“<<”根据所带的参数以不同的含义重载,所以当向cout发送不同的参数时,它能“识别应该对这个参数作何处理”。

本书中,在每个文件的第一行都有一条注释,以注释符(一般是“//”)跟一个冒号开始,而最后一行是一条注释后面跟着一个“/:~”,表示文件结束。这是一点技巧,这样标记,可以很容易地从代码文件中提取信息(本书第2卷中可找到这个提取信息的程序,该卷在www.BruceEckel.com上)。第一行的注释中有文件名和位置信息,因此文件能被正文和其他文件引用,所以很容易从本书的源代码中找到它(源代码可从www.BruceEckel.com下载)。