1、第二章 C+语言基础 2.1 标识符和关键字一、标识符标识符是一个字符序列,用来标识变量、函数、数据类型等。命名规则:1. 所有标识符必须由一个字母(a-z 或 A-Z)或下划线(_)开头;2. 标识符的其它部分可以用字母、下划线或数字(0-9)组成;3. 大小写字母表示不同意义, 代表不同的标识符。正确 不正确smart 5smart(不能数字开头)_decision bomb?(有非法字符?)key_board key.board(有非法字符.)注意1. 虽然允许用下划线开头,但尽量避免使用,因为编译器常常已定义一些下划线开头的标识符。2. C+本身没有限制标识符中字符个数,但大多数的编译
2、器都有限制。编译器限制的数字很大,例如 255。3. C+语言的标识符经常用在以下情况中:1) 标识对象或变量的名字2) 类、结构和联合的成员3) 函数或类的成员函数4) 自定义类型名5) 标识宏的名字6) 宏的参数二、关键字C+中预定义的标识符称为关键字,也称保留字。关键字是一种特殊的标识符。关键字具有特定的含义,不能对它们再定义。标准 C+中预定义了 63 个关键字,例如int、float、char 、void、if、else 、while、for 等。C+中还另外定义了 11 个运算符关键字: and、and_eq bitand、 bitor compl、not、not_eq or、or
3、_eq、xor、xor_eq2.2 基本数据类型一、数据类型说明void 类型也是基本数据类型,但它不是一个完整的类型,只能作为更复杂类型的一部分。没有 void 类型的变量,其或者用于指定一个函数没有返回值,或者作为指针类型,表示该指针指向未知类型的变量。例:void x; /错误,没有 void 变量void f( ); /正确,函数 f 不返回值void *pv; /正确,指针 pv 指向未知类型的变量二、类型转换1. 横向箭头表示必须的转换,如两个 float 型数参加运算,虽然它们类型相同,但仍要先转换成 double 型再进行运算,结果亦为 double 型。2. 纵向箭头表示当运
4、算符两边的操作数为不同类型时的转换,如一个long 型数据与一个 int 型数据一起运算,需要先将 int 型数据转换为 long 型,然后两者再进行运算,结果为 long 型。3. 所有这些转换都是由系统自动进行的,使用时只需了解结果的类型即可。实例/ch02_01 类型转换#include void main()char a = x;int b = 3,f = 2;float c = 2.5678;double d = 5.2345;long e = 32L;coutvoid main ( )int Days = 5;float Hours, payRate, Pay;Hours = 7.
5、5; payRate = 38.55;Pay = Days * Hours * payRate;cout / |. , ; ? “ ( ) 转义字符n / 换行r / 回车t / 水平 tabv / 垂直 tabb / 退格f / 进纸 / 单引号 ()“ / 双引号 (”) / 反斜杠 ()12 / 换行(10 进制编码 = 10)11 / 水平 tab (10 进制编码= 9)101 / A (10 进制编码 = 65)0 / null (10 进制编码= 0)字符串字符串是一个连续的字符系列,用一对双引号包围起来,由一个0字符结尾。假定有一个字符串为“HELLO”,它在内存中的存储,参见
6、下图。一个长字符串可以占两行或多行,但在最后一行之前的各行应用反斜杠结尾。例如:“Example to show the use of backslash for writing a long string “上面的字符串与下面的单行字符串等价:“Example to show the use of backslash for writing a long string“注意1. 不要把字符与字符串混淆了。例如:“A”与A 不等价,前者由两个字节组成(字符A 与字符 0) ,而后者只有一个字节。2. 最短的字符串是空字符串(“”),它仅由一个结尾符 0组成。3. C+中,没有字符串类型,而是用
7、字符数组来处理字符串。五、布尔型变量布尔类型变量用 bool 关键字定义,其值为 true 或 false。整型值也可赋给bool 变量,但会被隐式转换成 true 或 false。整型值非 0 时,转换为 true,整型值为 0 时,转换为 false。同样,布尔值也可赋值给整型变量,但要进行隐式转换。布尔值为 true 时,转换为 1,布尔值为 false 时,转换为 0。布尔值也可插入输出流 cout:当布尔值为 true 时,在屏幕上打印 1;当布尔值为 bool 时,在屏幕上打印0。六、常量在程序运行过程中其值不发生变化的量。常量可分为直接常量与符号常量。 直接常量就是常数; 符号常
8、量就是用一个标识符代表某个常量。程序设计中,尽量使用符号常量来代替常数,这是一种好的编程习惯,这样可以增加程序的可读性、可维护性。例如,在数值计算中,我们会经常遇到一些常量,比如圆周率。如果把它定义成符号常量,当需要更改常量值的时候,只需要更改符号常量的定义语句即可。1. 符号常量用关键字 const 声明,其格式如下:const 数据类型 常量名常数值;如:const int a= 1234; /定义 a 为整型常量其值为 1234const char b=a; /定义 b 为字符型常量其值为 a注意:常量是指不会改变的数值,即使经过程序执行也不会改变其值。2. define 定义符号常量#
9、define PI 3.14159定义符号常量 PI,然后在程序中使用 PI,跟使用常数 3.14159 的效果是一样的。编译器在编译时,把符号 PI 替换成 3.14159,当需要修改 PI 的值时,只需要修改上面的语句即可。两者之间的区别:const 常量有数据类型,而宏定义的常量没有数据类型。编译器对 const 型常量进行类型安全检查,而对宏定义的常量只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误,建议使用const 常量。2.4 运算符介绍按功能分:算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符、赋值运算符、逗号运算符、sizeof 运算符、其它运算符按需要操作数个数分:单目运算符(一个操作数)双目运算符(两个个操作数)三目运算符(三个操作数)一、算术运算符1. 基本的算术运算符C+提供了 5 种基本的算术运算符: