零基础学C++(升级版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 第一个C++程序

视频讲解

视频讲解:资源包\Video\02\2.1第一个C++程序.mp4

学习编程的第一步是写一个最简单的程序。学习任何编程语言都需要写一个“Hello World”程序。下面是最简单的C++程序,同样是一个Hello World程序。

程序输出结果如图2.1所示。

图2.1 程序输出结果

最简单的C++程序中包含了头文件引用、应用命名空间、主函数、字符串常量、数据流等几个部分,这些都是C++程序中经常用到的。这是一个输出“Hello World”的小程序。程序第1行使用字符“#”,这是一个预处理标志,预处理表示该行代码最先被处理,所以要在编译代码之前运行;include是一个预处理指令,其后紧跟着一对尖括号“<>”,尖括号内是一个标准库。第2行使用命名空间“std”。第3~6行是程序执行入口,main函数是每一个C++程序都需要有的,花括号代表main函数的函数体,我们可以在函数体内编写要执行的代码。下面对C++常用的概念进行介绍。

注意

在C++代码中,所有的字母、数字、括号以及标点符号均为英文输入法状态下的半角符号,而不能是中文输入法或者英文输入法状态下的全角符号。

2.1.1#include指令

在C++程序中,第1行带“#”符号的语句被称为宏定义或预编译指令。关于什么是C++的语句、什么是宏定义或预编译指令的内容,会在后面的章节中讲到。#include在代码中是包含和引用的意思,其后紧跟着一对尖括号“<>”。第1行代码#include<iostream>就表示要引用iostream文件内容,编译器在编译程序时会将iostream的内容在#include<iostream>处展开。

常见错误

忘记包含iostream头文件。

如果忘记包含iostream头文件,那么在编译程序时会报错,按F4键可以查看错误,如图2.2所示。可以发现,如果不包含这个头文件,那么很多相关的功能都是不能使用的。

图2.2 忘记包含iostream头文件时的编译错误

2.1.2 iostream标准库

iostream(输入/输出)是一个标准库,直白地讲,就是输入(in)、输出(out)和流(stream)。iostream就是取in和out的首字母并与stream结合而成的,它包含了众多函数。标准库中的每个函数都有其自身的作用。如果代码中没有包含这个文件,那么就不能使用cout输出语句了。这里读者需要记住,必须使用#include<iostream>这条语句,才能在程序中使用相关的功能。

说明

函数就是能够实现特定功能的程序模块。

常见错误

在包含iostream头文件时,忘记使用尖括号“<>”。

由于没有使用尖括号,程序无法包含iostream,导致其他相关的功能都不能够使用,如图2.3所示。

图2.3 忘记使用尖括号“<>”时的编译错误

2.1.3 命名空间

C++中命名空间的作用是减少和避免命名冲突。namespace是指标识符的各种可见范围。在使用C++标准库中的标识符时,一种简便的方法是:

这样在命名空间“std”内定义的所有标识符都有效,所以在程序中使用了cout来输出字符串。如果没有这条语句,那么只能像下面这样写来显示一条信息:

cout(还有cin)是我们经常会用到的。在每个程序的开头加上using namespace std;这条语句是很有必要的。

常见错误

在using namespace std语句的后面没有添加分号。

如果在using namespace std语句的后面没有添加分号,那么在编译程序时将显示如图2.4所示的错误。

图2.4 在using namespace std语句的后面没有添加分号时的编译错误

“std::”是一个命名空间的标识符,C++标准库中的函数或者对象都是在命名空间“std”中定义的。所以我们要使用的标准库中的函数或者对象都要用std来限定。

cout是标准库所提供的一个对象,而标准库在命名空间中被指定为std,所以在使用cout的时候,前面要加上“std::”。这样编译器就会明白我们调用的cout是命名空间std中的cout。

如果上述程序中未写“using namespace std;”语句的话,在主函数的函数体内可以这样写:std::cout<<"Hello World\n"。

2.1.4 main函数

main代表主函数。main函数是程序执行入口,程序从main函数的第一条指令开始执行,直到main函数结束,整个程序也将执行结束。注意,函数的格式是main后面有一个小括号“()”,小括号内是放参数的地方。

2.1.5 函数体

大括号“{}”中的代码是需要执行的内容,被称为函数体。函数体是按代码的先后顺序执行的,写在前面的代码先执行,写在后面的代码后执行。代码cout<<"Hello World\n";表示通过输出流输出“Hello World”,“Hello World”两边的双引号代表它是字符串常量,cout表示输出流,“<<”表示将字符串传送到输出流中。

2.1.6 函数返回值

int表示函数的返回值类型,函数的返回值是用来判断函数执行情况以及返回函数执行结果的。int代表不返回任何数据。如果要返回数据,则需要使用return语句。

2.1.7 注释

代码注释是禁止语句执行的,编译器不会对注释掉的语句进行编译。C++中有两种注释方法,其中“//”是单行注释,单行注释只能注释掉“//”符号后面的内容,到本行代码结束的位置结束;“/**/”是多行注释,多行注释的使用方法是将“/*”符号放在要被注释掉的代码的前面,将“*/”符号放在要被注释掉的代码的末尾,“/*”和“*/”之间的内容就会被注释掉。另外,在多行注释中不允许嵌套多行注释,例如/*/**/*/,最后出现的“*/”符号将会无效。在第一个C++程序中加入注释,代码如下:

注释不仅仅在调试时使用,开发人员也可以在代码中加入注释,用来说明代码的用意,这样方便日后自己或别人查看。