第一章 开始
本章介绍C++的大部分基础内容:类型、变量、表达式、语句及函数。在这个过程中,我们会简要介绍如何编写及运行程序。在学习玩本章并认真完成连续之后,我们将具备编写,编译及运行简单程序的能力。
1.1 编写一个简单的C++程序
每个C++程序都包含一个或多个函数(function),但其中一定会有一个函数名为main的函数。其中main函数是整个程序的入口,系统通过调用main来运行C++程序。
一个函数的定义包含四个部分:返回类型(return type)、函数名(function name)、一个括号包围的形参列表(parameter list)以及函数体(function body),其中形参列表允许为空。其结果模型如下:
返回类型 函数名(形参列表...)
{
函数体
}
例如:
1 int main(void) 2 { 3 return 0; 4 }
在本例中,int是函数的返回类型(int类型为一种内置类型,语言自身定义的类型,后面会介绍),main为函数名,形参列表为空((void)中的void是指明本函数没有形参,也可以去掉void,简写成())。函数体是一个以作花括号开始,右花括号结束的语句块(block of statements),如下:
{
return 0;
}
这个语句块中唯一的一条语句是return,它结束函数的执行,并向调用者返回一个值,却返回值的类型必须与函数的返回类型相一致。
注:return语句末尾的分号。在C++中,大多数C++语句以分号表示结束。塔门很容易被忽略,但如果忘记了写分号,就会导致莫名其妙的编译错误。
1.1.1 编译、运行程序
编写好程序后,我需要编译它(编译的作用类似把我们写的代码翻译成计算机能识别的东东),如何编译程序依赖于我们使用的操作系统和编译器。在这就不做过多的讲解。
程序源文件命名约定
无论我们使用命令行界面或者IDE,大多数编译器都要求程序源码存储在一个或多个文件中。程序文件通常被称为源文件(source file)。在大多数系统中,源文件的名字都是一个后缀为结尾,后缀是由一个句号后接一个或多个字符组成的。后缀搞死系统这个文件是一个C++程序。不同编译器使用不同的后缀命名约定,最常见的包括.cc、.cxx、.cpp、.cp及.C。
从命令行运行编译器
如果我们正在使用命令行界面,那么通常是在一个控制台窗口内编译程序。假设我们的main程序保存在文件main.cpp中,我们可以用如下命令来编译它:
$ gcc main.c
其中,CC是编译器程序的名字,$是系统提示符。编译器生成一个可执行程序(windows系统中为main.exe,unix系统中为a.out)。在UNIX和windows操作系统中,执行完一个程序后,都可以通过echo命令获取其返回值(UNIX中用: echo $?, windows系统中用:echo %ERRORLEVEL%)。如下面我是在我Linux系统中编译执行的过程:
$ g++ main.c $ ls a.out main.c $ ./a.out $ echo $? 0