mylogo

退役程序员的茶室 RetiredCoder.cn

← 返回上一页

C++编程基础: 2. 程序的基本结构

2025-04-10 17:06:33

本系列文章是配合我发布的《C++编程基础》系列视频教程的知识点总结。

注释

//开头的是单行注释,多行注释可在/**/之间加入。注释虽然在程序运行中起不到什么作用,但对程序员仍是非常重要,良好的注释习惯不仅有助别人理解你的代码,更能帮你在和代码久别重逢后快速恢复记忆。

以#开头的预处理器编译指令

#include <iostream>

这类指令会在编译前执行,#include这个“包含”指令,会在程序被编译前将指定文件的内容增加到这行指令在程序中所处位置。在尖括号中的这个文件通常是系统的标准库头文件,如果是自定义的头文件或者是一些第三方的库文件或头文件,通常用双引号括起来。为了要使用命名空间std中的cout和endl,所以这里include了iostream。在一些老版本的代码中有时会看到尖括号中写的是iostream.h,现在已经不再提倡这么用了。

命名空间 namespace

using namespace std;

添加了using namespace是为使用被纳入到命名空间std(standard)中的标识符cout和endl,C++引入命名空间的概念是为了解决同名冲突的问题,但是如果把这样的声明放在所有函数之外,相当于全局有效,且所有std中的标识符都变为可以直接引用,更易和其他库的同名标识符造成冲突,因此不建议这样使用它,即使使用它也不建议把它放在需要用它的函数之外,应放到函数之内,更好的方法是精准地声明使用到的具体标识符。

using std::cout;

using std::endl;

主函数main()及其参数

int main() {}

int main(int argc, const char * argv[]) {}

main函数称为主函数,是C++程序执行的入口,标准的main()函数返回值是一个int类型的值,可以通过它的返值来判断程序运行的状态如何,main函数的参数可以是空,也可以是包含参数 int argc, const char * argv[] 的函数结构,它允许程序被调用时提供命令行参数,argc的值是命令行中一共有多少个字符串,char * argv[]则指向了这些字符串的每一个。

在Xcode中如果在运行可执行文件时需要外部传入参数,需要点击【Product】->【Scheme】->【Edit Scheme…】,在【Run】项下选择【Arguments】分页,在其中的【Arguments Passed On Launch】项中通过点击【+】或【-】对要传递的参数做添加或删除操作。

Image

Image

可以通过argv[0]、argv[1]直接获得命令行中的第一个和第二个字符串,这里argv[0]是编译后生成的可执行文件所在位置的完整路径,argv[1]则是添加的第一个参数值。

Image