第二章C++语言的基本概念
第二章 C++ 语言的基本概念
程序:就是用计算机语言对程序要完成的任务(即功能)的描述。 源程序文件是一种文本文件,C++源程序文件的扩展名是CPP。
C++程序的书写格式具体规则如下:
①一行一般写一条语句。短语句也可以一行写多个,长语句可以一条写多行。分行原则是不能将一个单词分开,也不要将用双撇号引用的一个字符串分开。一般地讲,在两个单词间进行分行。续行符为“\\”,加在上行的行尾,一般情况下不需要加续行符。
②为提高程序的可读性,采用缩格书写的方法。同一类语句要对齐,不同类的语句要缩过若干个字符,这样会增加可读性,较清楚地表示出程序的结构。
例如,一个函数的函数体的语句,应比函数体定界的左大括号缩进2个字符,并且对齐。 ③大括号在程序中使用较多,书写格式也有所不同。
每个大括号占一行,并与使用大括号的语句对齐,大括号内的语句采用缩格书写方式,一般缩进2个字符。
个别情况下,大括号与其所括的内容占一行,例如,用来初始化的初始值表中所使用的大括号就是如此。
④C++语言的程序可读性较差,因此要求书写时要遵循一般书写规则,否则该程序读起来比较困难。另外,加些注释信息也是提高程序可读性的好办法。
第一节 C++ 程序的组成
C++程序是由一个或多个函数组成的。一个C++程序至少有1个函数,即主函数,约定的函数名为main。
一个最简单的C++程序如:int main( ){ } (即只有一个主函数)
主函数(即main函数)是程序的入口,一个应用程序的执行就是从主函数的第1个语句开始的。 以上节的练习题为例,说明C++程序的结构形式.
// 计算圆的周长
#include
int main () //主程序 {
float s,r; //定义单精度实数
北京12中计算机教研室 1
第二章C++语言的基本概念
cout<<\输入提示 cin>>r; //输入半径
s=PI*r*r; //计算圆的面积 cout<<\输出
system(\输出结果能够在屏幕上停留 return 0; // 结束 }
C++的程序结构由注释、编译预处理和程序主体组成。
一.注释
注释是程序设计者对程序的阅读者所做的说明,它可以大大的提高程序的可读性。C++语言中注释方法有如下:
(1)使用“/*”和“*/”括起来进行注释,在“/*”和“*/”之间的所有字符都为注释符。这种注释方法适用于多行注释信息的情况。
(2)使用“//”,从“//”后面字符开始,直到它所在行的行尾所有字符都被作为注释信息。这种方法适用于注释一行信息的情况。
这两种注释方法都可以放在程序的任一位置:程序开头、结尾及中间任何位置都可以。前一种方法可以放在某一程序中的语句行的前边或后边,甚至中间;而后一种方法可以放在某一语句行的后边,而不能放在前边和中间。 二.编译预处理
以符号“#”开头的行称为编译预处理行,如本例中的#include
#include
而const float PI=3.14;是将PI定义为常数值3.14。在本例中还有一句针对命名空间的指令using namespace std;在编写程序时只要将其放在#include
在C++中凡是程序中所使用的变量都需要在程序主体的最前面进行说明,即变量定义。本例中的float s,r;即是说明程序中要用到的两个变量s和r,float说明了这两个变量的类型。之后的语句完成了输入半径,计算周长,输出结果的任务。其中“cout<<\
radius :\”是在屏幕上输出\,我们在第一个例子中已经接触过了。 “cin>>r;”是将所输入的数赋值给r,然后“s=pi*r*r;”完成了周长的计算,“cout<<\”则是把计算的结果显示在屏幕上,从而完成了题目的要求。需要注
北京12中计算机教研室 2
第二章C++语言的基本概念
意的是在C++中每条语句都是由“;”作为结束的标志。
在程序的最后有一条语句:return 0;它所对应的是main前面的int,即将“0”作为返回值
给了主函数。这是由C++的新标准:main必须有返回值所决定的。最好不要将返回值的类型设置为“void”(空类型),即不要写成void main ()的形式,因为在新标准的编译器下这种写法可能会无法通过。
四、 C++语言的词法和词法规则 4.1、C++语言的字符集
C语言的字符集同于C语言的字符集。C语言的字符集由下列字符组成: 1.大小写英文字母 2.数字字符 3.其他字符
空格 ! # % ^ & * _(下划线) - + = ~ < > / \\ . , : ; ? ' \( ) [ ] { } 4.2单词及词法规则
单词是一种词法记号,它是由若干个宇符组成的具有一定意义的最小词法单元。下C++语言有6种单词: 4.2.1.标识符
标识符是程序员用来命名程序中一些实体的一种单词。使用标识符来定义函数名、类名、对象名、变量名、常量名、类型名和语句标号名等。
C++规定,标识符是由大小写字母、数字字符和下划线符组成的。并以字母或下划线开头的字符集合。
定义标识符注意如下几点:
①标识符中的大小写字母是有区别的。例如,ABC,AbC,abC,ABc等都是不同的标识符。 ②标识符的长度,即组成一个标识符的字符个数,是不受限制的。
但是,有的编译系统所能识别的标识符长度是有限的,例如,有的系统只识别前32个字符。 ③在实际应用中,尽量使用有意义的单词作标识符。但是,不得用系统中已预定义的标识符,即关键字和设备字。
4.2.2.关键字
关键字是系统中已预定义的单词,它们在程序中表达特定的含义。下面列举出C语言中常用的关键字(p8):
++
++
++
北京12中计算机教研室 3
第二章C++语言的基本概念
4.2.3.运算符
运算符是一些用来进行某种操作的单词,它实际上是系统预定义的函数名,这些函数作用于被操作的对象上将获得一个结果值。运算符是由1个或多个字符组成的单词。
C++语言的运算符除了包含了C语言中的运算符外,还增加了一些新的运算符。C++语言的运算符可以重载。
4.2.4.分隔符
分隔符被称为程序中的标点符号,它是用来分隔单词与程序正文的,它用来表示某个程序实体的结束和另一个程序实体的开始。
C++常用的分隔符包括有:
(1)空格符:用作单词之间的分隔符。
(2)逗号:用作变量之间或对象之间的分隔符;或者用作函数的多个参数之间的分隔符。 (3)分号:用于for循环语句中,作为关键字for后面的括号内的三个表达式之间的分隔符。 (4)冒号:用作语句标号与语句间的分隔符以及switch语句中case(整数型表达式>与语句序列之间的分隔符。
(5)花括号:用来为函数体、分程序等定界的。 5.常量
常量是一种标识符,它的值在运行期间恒定不变。C语言用 #define来定义常量(称为宏常量)。C++ 语言除了 #define外还可以用const来定义常量(称为const常量)。 常量定义的两种方法: 例: #define MAX 100; 或用 conse int MAX=100;
这两种方法效果相同。
5.1 为什么需要常量
如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?
(1)程序的可读性(可理解性)变差。程序员自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从何处来、表示什么。
(2)在程序的很多地方输入同样的数字或字符串,难保不发生书写错误。 (3)如果要修改数字或字符串,则会在很多地方改动,既麻烦又容易出错。
?
尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串。 例如:
#define MAX 100 /* C++语言的宏常量 */
北京12中计算机教研室 4
第二章C++语言的基本概念
const int MAX = 100; const float PI = 3.14159; // C++ 语言的const常量 // C++ 语言的const常量
5.2 const 与 #define的比较 C++ 语言可以用const来定义常量,也可以用 #define来定义常量。但是前者比后者有更多的优点:
(1) const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)。
(2) 有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
在C++ 程序中只使用const常量而不使用宏常量,即const常量完全取代宏常量。 5.3 常量定义规则
需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中。
如果某一常量与其它常量密切相关,应在定义中包含这种关系,而不应给出一些孤立的值。 例如:
const float RADIUS = 100;
const float DIAMETER = RADIUS * 2;
5.4 C++的运算符
C++的运算符十分丰富,运算非常灵活方便。C++的运算符如下: (1) 算术运算符
+(加)-(减)*(乘)/(除)%(整数求余)++(自加)- -(自减) (2)关系运算
>(大于)<(小于) = =(等于)>=(大于等于) <=(小于等于) !=(不等于) (3)逻辑运算
&&(逻辑与) ||(逻辑或) !(逻辑非) (4)位运算
在很多系统程序中常要求在位(bit)一级进行运算或处理。C++语言提供了位运算的功能,这使得C++语言也能像汇编语言一样用来编写系统程序。 位运算符C++语言提供了六种位运算符:
& 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 1. 按位与运算按位与运算符\是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
北京12中计算机教研室 5