
C++程序设计:第2章 C++基本概念.ppt
71页第2章,C+基本概念,本章需要掌握的内容,C+的基本词法结构,包括关键字、标识符和标点符号基本的数据类型变量与引用整型常量的不同进制表示方法实型常量的不同表示方法字符常量、转义字符与字符串常量标识符常量与宏定义常量各种运算符的作用与优先级类型转换,包括:自动类型转换、强制类型转换和赋值类型转换C+语句简单的输入与输出,2.2 第一个C+源程序,#includevoid main() couthello,worldn; /向屏幕输出 hello,world后换行,包含头文件,主函数的函数头,函数后跟的一对,C+输出语句,注释语句,2.3.1 关 键 字,关键字(Keyword)又称保留字是由系统定义的具有特定含义的英文单词关键字不能另作它用C+大小写敏感(区分大小写),关键字全部由小写字母组成标准C+(ISO14882)定义了74个关键字,具体的C+编译器还会做一些增删常用关键字及分类见下表关 键 字,表2-1 C+常用关键字及分类,2.3.2 标识符,标识符(Identifier,ID )是程序员定义的“单词”,用来给变量、常量、数据类型、函数等命名合法标识符由字母或下划线开始,由字母、数字、下划线组成,且不能和关键词同名。
其有效长度各个C+编译系统有自己的规定,VC+允许标识符长度为1247个字符建议使用有一定含义的英文单词或拼音序列作标识符,以提高可读性;另外尽量不用下划线或双下划线打头,以免与系统定义的关键字冲突标识符,例: 判断下面哪些是合法的标识符:,MyFile,Salary 94,amount,void,94Salary,_94Salary,$amount,f3.5,Num_of_Student,2.3.3 标点符号,标点符号包括#、( )、 ,、 :、 ;、 、 等标点符号的作用:,有一定的语法意义如字符和字符串常量分别用 和 引起来对语法符号起分隔作用如;等,2.3.4 分隔符,编写C+程序时,每个词法单位必须使用分隔符将它们分隔开可用作C+分隔符的有:运算符、标点符号、空格符、Tab符、回车符2.4 数据类型,计算机处理的对象是数据,而数据是以某种特定的形式转换成二进制码存放在内存中的例如,整数在内存中采用原码或补码表示、实数采用浮点数表示方式对于整数10和实数10.0在内存中的数据是不一样的即使同样表示整数,对于(FFFFFFFF)16若表示为有符号的整数则为-1,若表示为无符号的整数则为232-1。
2.2 C+中的数据类型,C+的数据类型,基本数据类型,非基本数据类型,数组 type 指针 type *结构 struct联合 union枚举 enum类 class,整 型 int,字符型 char,逻辑型 bool,无值型 void,实 型 float双精度型 double,实 型,整型用来存放整数.有符号的整数在内存中存放的是它的补码,无符号数没有符号位,存放的就是原码 整数占用的字节数与机型有关,32位机上占用4个字节字符型用来保存字符,存储的是该字符的ASCII码,占用一个字节如大写字母A的ASCII码为65,在对应的一个字节中存放的就是65字符型数据从本质上说也是整数,可以是任何一个8位二进制整数实型和双精度型都用来存放实数,两者表示的实数精度不同 实数在内存中以浮点数形式存放无值型主要用来说明函数的返回值类型,将在函数一章中具体介绍基本数据类型还可以加上一些修饰词,包括:signed(有符号)、unsigned(无符号)、long(长)、short(短)参见下表:,VC+的基本数据类型,2.5 变 量,变量,在程序中是指可以改变值的量;变量必须用标识符进行标识,称为变量名;变量有类型之分,如整形变量、字符变量等;任何变量都必须先说明后使用;一是便于编译程序为变量分配空间,二是便于编译时进行语法检查;,例如:int i, j, k;float x, y, z;char c1, c2; double dx;,2.5.1 变量说明,在C+中,变量说明的一般格式为:存储类型数据类型 变量名1,变量名2, ,变量名n;,三个实型变量x, y, z,二个字符型变量c1,c2,一个双精度型变量dx,三个整型变量i,j,k,2.5.1变量赋初值,给变量赋初值称为初始化,有两种方法:(1)变量说明时直接赋初值。
例如:int a=3, b=4, c=5;float x=3.0;(2)用赋值语句赋初值例如:float x, e;x=3.5; e=2.71828;,2.6 常量,1. 整型常量,4. 字符串常量,3. 字符型常量,2. 实型常量,常量,指程序中直接给出的量;常量的值在程序执行过程中保持不变;根据取值和表示方法的不同,可分为以下几种:,2.6.1 整型常量,十进制表示法,八进制表示法,十六进制表示法,其他表示法,整数有多种表示方法;,整数的十进制表示方法,十进制表示与我们熟悉的书写方式相同如15 -24,整数的八进制表示,八进制表示以0开始,由数字07组成,用来表示一个八进制数如:012 /八进制数12,即十进制数10-0655/八进制数-655,即十进制数-429,整数的十六进制表示,十六进制以0X(大小写均可)开始,由数字09和字母AF(大小写均可)组成,用来表示一个十六进制数例如:0 x32A /十六进制数32A,即十进制数810-0 x2fe0 /十六进制数-2fe0,/即十进制数-12256,整数的其他表示方法,整型常量还可以表示长整数和无符号整数长整型常数以 L 或 l 结尾,无符号常整数以 U 或 u 结尾,以 U L 或 L U(大小写均可)结尾则可表示无符号长整型常数。
例如:-84L/十进制长整数-84026U/八进制表示的无符号整数260X32LU /十六进制表示的无符号长整型数322.6.2 实型常量,(1)一般形式与平时书写形式相同,由数字 09和小数点组成它一般由整数部分和小数部分组成,可以省略其中之一(如78.或.06,.0),但不能二者皆省略例如:0.23 -125.76 0.0 .46 -35.C+编译系统把用这种形式表示的实型数一律按双精度常量处理,在内存中占8个字节如果在实数的数字之后加字母F或f,表示此数为单精度浮点数,如1234F,-43f,占4个字节包含小数点和10的幂的数为实型常量,有两种表示方法:,(2) 指数形式(也称为科学表示法)表示为尾数乘以10的次方形式,由尾数、E或e和阶数组成指数形式要求在E或e前面的尾数部分必须有数字,后面的指数部分必须为整数例 : 判断下列表示是否合法,123E12,-.34e-2,E4,1.43E3.5,2.6.3 字符型常量,字符常量是用单引号引起来的单个字符在内存中保存的是字符的ASCII码值在所有字符中,有些是可显示字符,通常就用单引号引起来表示: a /字符a /字符4/字符4 /空格字符,注意:,e和E是不同的字符常量,它们代表不同的ASCII码值。
4和整型数4是不同的值, 4的ASCII码值为52 0和0是两个不同的字符 0的ASCII码值为48而0的ASCII码值为0,详见转义字符,2.6.4 转义字符,转义序列就是用转义符“”开始,后跟一个字符或一个整型常量(字符的ASCII码值)的方法来表示一个字符若转义符后边是一个整型常量,则必须是一个八进制或以x为前缀的十六进制数,其大小在0255之间当转义符后跟八进制数时,前缀0可以省略如021、x78、0、56等都是合法的字符型常量转义符后面的字符必须小写,大写只能表示其自身如果转义字符后面是大写字母,则忽略反斜杠,作为一个一般的符号处理,即标识大写字母自身例如:E,则认为就是E2.6.5 字符串常量,字符串常量与字符型常量的区别,字符串常量a占两个字节,存放a和0,值为0 x6100,字符型常量a占一个字节,存放a,值为0 x61,用双引号引起来的若干个字符称为字符串常量例如:I am a Chinese.,123, a , ,2.6.6 常变量及常量说明符const,用常量说明符const给常量起个名字(标识符),这个标识符就称为标识符常量,也叫常变量;例如:const float PI=3.14159;const int Number_of_Student=100;,常变量使用的注意事项:常变量必须也只能在说明时进行初始化;常变量初始化之后,不允许再被赋值;常变量必须先说明后使用;常变量存储在数据区,并且可以按地址访问,编译时系统对常变量进行类型检查。
C+建议使用常变量,而不要使用直接常量 2.6.7 宏定义常量,C+中可以用预编译指令#define 命令将一个指定的标识符(即宏名)来代表源程序中的一个字符串它的一般形式为# define 标识符 字符串如:# define PI 3.1415926,2.7.1 运算符与表达式,C+的运算符按功能大致可分为算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符C+的某些运算符与数学的运算符书写方式相同,功能也相近,但某些运算符与数学的运算符书写方式虽相同,功能却有所区别 C+的运算符按操作个数可分为单目(一元)运算符、双目(二元)运算符、三目(三元)运算符2.7.1 运算符优先级,C+规定了运算符优先级和结合性,详见表2-5 C+的运算符众多,优先级存在一定的规律性:单目运算符优先级高,;算术运算符优先级高,关系运算符次之,逻辑运算符低,赋值运算符优先级更低;最高优先级为括号和成员运算符,最低运算符为逗号运算符C+运算符的结合性也无须死记硬背,一般而言,其结合性和人们的思维习惯相同,2.7.2 算术运算符,一元算术运算符有:+ 正数运算符,一般可省略,例如+3,+9 负数运算符,例如-10,-100。
二元算术运算符有:+ 加法运算符,例如 a+b,3+12,a+55 减法运算符,例如 a-b,34-c,d-100 乘法运算符,例如 a*b,11*c,f*10 除法运算符,例如 a/b,100/4,30.0/4.0 求模(求余)运算符,例如 2%5,10%3,6%3对于+,-,*,/运算,如果运算符两边的操作数都是整数,其运算结果也是整数;如果参加+,-,*,/ 运算的两个数中有一个数为float型或double型数据,则运算的结果是double型,对于求模运算,要求两个操作数必须均为整数,其结果为两数相除后的余数除法运算,对于除法运算,如果运算符两边的操作数都是整数,其运算结果也是整数,即两数整除;如果两个操作符中有一个是实数,其运算结果就是实数4/5 运算结果为0,4.0/5或4.0/5或4.0/5.0运算结果为0.8,5/4 运算结果为1,5.0/4或5/4.0运算结果为1.25自增、自减运算符,自增、自减运算符有两个,+和-,其作用是使变量的值增1和减1和-可以出现在变量的左边或右边,分别称为前缀运算符和后缀运算符i,-i 使用前先使变量i的值增加(减)1i+,i- 使用后再使变量i的值增加(减)1+i(-i)表示先对i增1(减1),再采用i的新值参与运算i+(i-)表示先将i的值存放于临时变量,再对i增(减1),然后再采用临时变量存放的i的原值参与运算。
例2.6】 自增运算符示例,#include void main()int i=5, j=5;int k,n;k=+i +2; /Acoutk=k i=in;n=j+ +2; /Bcoutn=n j=jn;,k=8 i=6n=7 j=6,程序运行结果,算术表达式,算术表达式是由算术运算符、括号和操作数构成,能计算出一个算术值的式子在使用算术运算符时,需要注意有关算术表达式求值溢出的处理问题为避免数据的溢出,编制程序时,应考虑如下方面:为变量选择合适的数据类型,并确保该数据类型能存放变量可能的值,尽可能避免除数是一个绝对值很接近于0的数,尽。
