创建程序¶
在学习如何配置开发环境之后我们的首要任务就是编写一些简单的代码来测试我们的开发环境是否能够正常运行,同时也是为了能够让我们直观的感受到从一个编程世界的路人转型成初学者的一个体验。
编写代码¶
接下来我们分为几个详细的步骤来开发属于我们自己的程序。
打开代码编辑器 (IDE/文本编辑器) 编写如下代码:
#include <iostream>
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
编译代码¶
将写完的代码保存后缀为 ".CPP" 或 ".cpp" 的文件(文件名称和后缀的大小写可根据自己喜好决定) 保存完成之后打开终端输入如下命令
g++ 你的代码文件名称.CPP -o 生成出来的程序名称(最好与代码文件名称相同)
# 按下回车然后接着输入如下命令:
./你的程序名称
代码实战演示:
假设我的代码文件名称为 HelloWorld.CPP
g++ HelloWorld.CPP -o HelloWorld
./HelloWorld
当输入完最后一行命令时按下回车,不出意外的话你会在终端上看见这样一行字
Hello World!
初识代码¶
在计算机编程中只会照葫芦画瓢可不行,接下来我们逐行来认识每一段代码为我们后续的学习打下基础。
首先来看第一行我们将这行代码拆分为两个部分学习,首先是左侧的 #include 这是 C++ 中的预处理指令,预处理器在编译器真正编译代码之前运行,在上方代码中的作用是告知编译器,在编译过程中需要将我们在代码中所用到的一些头文件/工具库包含到当前的程序当中。
接下来是右侧部分 <iostream> 它是 C++ 中的一个标准库头文件,它包含了输入/输出流(Input/Output Stream)等功能,在上方代码中的作用是告诉编译器,我们需要使用 iostream 库中定义的功能,以便在程序中进行输入和输出操作。
接下来是第三行同样的我们分为左右两个部分逐一认识,首先是左侧的 int 它是 C++ 中的一个基础数据类型,在上方代码中和 main()组成了一个函数,int 代表了这个程序入口函数的返回值的类型。
然后是右侧的 main() 函数它是程序的入口函数,操作系统通过调⽤这个函数来启动程序。程序当中的所有代码全部都从这里开始执行没有例外。作为程序的入口函数在每个程序当中都必须有且仅有一个,如果一个 C++ 程序出现了两个及两个以上的入口函数则程序会无法编译。
注意 main() 函数可以没有返回值(当返回值类型声明为 void 时),但在⼤多数情况下,它会返回⼀个整数值给操作系统,通常⽤来表⽰程序的退出状态。0 通常表⽰程序是正常关闭的,⾮零值表⽰有错误或异常情况。
你肯定注意到了在上方代码中有一对大括号 { } 它在 C++ 中都是成对出现的,有开头就必须有结尾。在函数中的大括号代表了函数体,在当
前大括号内部的代码都⾪属于同⼀个函数,在调⽤此函数时,大括号内部的代码会按照出现的先后顺序来依次执⾏。
第四行的 std::cout 是 C++ 标准库中的⼀个输出流对象,它属于 <iostream> 头⽂件。std::cout 通常⽤于在标准输出设备(通常是屏幕或控制台)上输出数据。它是 std 命名空间中的⼀个成员,因此在使⽤时需要包含 std 前缀,除⾮你已经在⽂件顶部使⽤了 using namespace std; 声明。
std::cout 与运算符 << ⼀起使⽤,可以将各种类型的数据(如整数、浮点数、字符串、字符等)发送到标准输出流。
std::endl C++ 标准库中的⼀个操纵符(manipulator),它也属于 <iostream> 头⽂件。当与输出流如 std::cout ⼀起使⽤时,std::endl 会完成两件事:插⼊换⾏符:它会在输出流中插⼊⼀个换⾏符(\n),这通常⽤于在控制台或⽂件中创建新的⼀⾏。刷新输出缓冲区:除了插⼊换⾏符之外,std::endl 还会⽴即刷新与输出流关联的缓冲区。这意味着所有待处理的输出都会⽴即被发送到它们的⽬的地(如控制台或⽂件),⽽不是等待缓冲区填满或程序结束。
接下来是我们的最后一行代码 return 0; 其中的 return 在 C++ 中表示返回操作,当代码执⾏到 return 语句时,它会⽴即停⽌执⾏当前的函数体,并将控制权返回给调⽤该函数的地⽅。如果 return 语句后⾯跟着⼀个值(这个值的类型必须与函数的返回类型兼容),那么这个值将被返回给调⽤者。如果函数是 void 类型的,那么 return 语句后⾯通常不会跟任何值。在 main 函数中,return 语句通常⽤于返回程序的退出状态。