《VisualC教程第二版》第1章C/C语言概述.ppt
《《VisualC教程第二版》第1章C/C语言概述.ppt》由会员分享,可在线阅读,更多相关《《VisualC教程第二版》第1章C/C语言概述.ppt(38页珍藏版)》请在三一办公上搜索。
1、第1章C/C+语言概述,1.1 从C到C+的程序结构 1.2 程序书写规范1.3 数据类型1.4 运算符和表达式1.5 基本语句 1.6 函数1.7 指针和引用1.8 作用域和存储类型 1.9 预处理,1.1从C到C+的程序结构,C+程序是由预处理命令、语句、函数、变量(对象)、输入与输出以及注释等几个基本部分组成的。代码中的main表示主函数,每一个C+程序都必须包含一个且只能包含一个main函数。main函数体是用一对花括号“”和“”括起来的,函数体中包括若干条语句,每一条语句都以分号“;”作为结束的标志。C+用标准输入输出的头文件iostream.h替代了C语言的stdio.h,用cin
2、、cout和操作运算符、等实现并扩展了C语言的scanf和printf函数功能。,1.2程序书写规范,标识符命名 标识符是用来标识变量名、函数名、数组名、类名、对象名、类型名、文件名等的有效字符序列。标识符命名需要遵守其合法性、有效性和易读性的原则。(1)合法性 C+规定标识符由大小写字母、数字字符(09)和下划线组成,且第一个字符必须为字母或下划线。任何标识符中都不能有空格、标点符号、运算符及其他非法字符。标识符的大小 写是有区别的,并且不能和系统的关键字同名。(2)有效性 标识符的长度最好不要超过32个,有的编译系统只能识别前32个字符,前32个字符相同的两个不同标识符被有的系统认为是同一
3、个标识符。(3)易读性 做到“见名知意”就可以达到易读性的目的。许多程序员采用“匈牙利标记法”来定义标识符。这种方法是:在每个变量名前面加上表示数据类型的小写字符,变量名中每个单词的首字母均大写。,1.2程序书写规范,缩进和注释 程序在书写时不要将程序的每一行都由第一列开始,应在语句前面加进一些空格,称为“缩进”,或是在适当的地方加进一些空行,以提高程序的可读性。每个花括号占一行,并与使用花括号的语句对齐。花括号内的语句采用缩进书写格式,缩进量为四个字符(一个默认的制表符)。注释是为了提高程序的可读性。注释本身对编译和运行并不起作用。在程序中,凡是放在“/*.*/”之间或以“/”开头行尾的内容
4、都是注释的内容,其中,/*.*/注释方式可以出现在程序中的任何位置。一般来说,注释应在编程的过程中进行,且注释内容一般有:源程序的总体注释、函数注释及其他的少量注释。一般不要陈述那些一目了然的内容,以免影响注释的效果。,1.3数据类型,基本数据类型 C/C+的基本数据类型有字符型(char)、整型(int)和浮点型(float、double)三种。这些基本数据类型还可用short、long、signed和unsigned来修饰。需要注意的是:(1)C+可以有布尔型(bool),在计算机内,编译系统将true表示成整数1,false表示成整数0,因此也可把布尔型看成是一个整型。(2)无符号(un
5、signed)和有符号(signed)的区别在于数值最高位的含义。有符号类型最高位是符号位,其余各位表示数值大小;无符号类型的各个位都用来表示数值大小;相同基本数据类型的signed和unsigned的数值范围是不同。例如,无符号字符型值的范围为0255,有符号字符型值的范围为-128-127。(3)char、short、int和long可统称为整型。默认时,char、short、int和long本身是有符号(signed)的。常量 整型常量 整型常量可以用十进制、八进制和十六进制来表示。十进制整型常量即十进制整数;八进制整型常量是以0开头的数;十六进制整型常量是以0 x或0X开头的数,它由0
6、至9、A至F或a至f组成。,1.3数据类型,注意:(1)整型常量中的长整型(long)要以L或小写字母l作为结尾。(2)整型常量中的无符号型(unsigned)要以U或u作为结尾。浮点型常量 浮点型常量即实数,它有十进制数或指数两种表示形式。十进制数形式是由整数部分和小数部分组成的(注意必须有小数点)。指数形式采用科学表示法,它能表示出很大或很小的浮点数。注意字母E(或e)前必须有数字,且后面的指数必须是整数。浮点型常量以F(或f)结尾的表示单精度类型(float),以L(或小写字母l)结尾的,表示长双精度类型(long double)。若浮点型常量没有任何说明,表示双精度类型(double)
7、。字符常量字符常量是用单引号括起来的一个字符。C/C+可以用一个“”开头的字符来表示特殊含义的字符常量。例如n,代表一个换行符,而不是表示字母n。这种将反斜杠()后面的字符转换成另外意义的方法称为转义表示法,n称为转义字符。,1.3数据类型,字符串常量 C+可以使用字符串常量。字符串常量是一对双引号括起来的字符序列。例如:“Hello,World!n”。字符串常量中还可以包含空格、转义字符或其他字符。并且必须在同一行书写,若一行写不下,则需要用来连接。字符常量和字符串常量主要的区别:(1)字符常量用单引号括起来的,仅占一个字节;字符串常量是用双引号括起来的,至少占用两个字节。“a”是字符串常量
8、,它的长度不是1而是2,除字符a之外,末尾还有个0字符。每个字符串的末尾都有一个这样的字符。(2)字符常量实际上是整型常量的特殊形式,它可以参与常用的算术运算;而字符串常量则不能。符号常量 在C+中,除了用C语言的#define定义符号常量外,还常常用const来定义符号常量。,1.3数据类型,变量 变量的定义 定义变量是用下面的格式:;(1)可以将同类型的变量定义在一行语句中,不过变量名要用逗号(,)分隔。但在同一个程序块中,不能有两个相同的变量名。(2)注意在C+中没有字符串变量类型,字符串是用字符类型的数组或指针来定义的。(3)与C语言相比,C+变量的定义比较自由。变量的初始化 程序中常
9、需要对一些变量预先设置初值,这一过程称为初始化。在C/C+中,可以在定义变量时同时使变量初始化。C+变量的初始化还有另外一种形式,它与C语言不同。例如:int nX(1),nY(3);表示nX和nY是整型变量,它们的初值分别为1和3。,1.3数据类型,数据类型转换 自动转换 自动转换是将数据类型从低到高的顺序进行转换强制类型转换 强制类型转换是在程序中通过指定数据类型来改变图所示的类型转换顺序,将一个变量从其定义的类型改变为另一种新的类型。强制类型转换有两种格式:()()这里的“类型名”是任何合法的C/C+数据类型,通过类型的强制转换可以将“表达式”转换成指定的类型。,1.3数据类型,数组 数
10、组的定义 定义一个数组可按下列格式进行:.后面的常量表达式用于确定数组的维数和大小。一般表示某维大小的常量表达式中不能包含变量,但可以包括常量和符号常量,其值必须是一个确定的整型数值,且数值大于1。数组元素的引用 引用格式:.数组的赋值数组中的元素既可以在数组定义的同时赋初值,也可以在定义后赋值。对于二维或多维数组需要说明的是:(1)初始化数组的值的个数不能多于数组元素个数,初始化数组的值也不能通过跳过逗号的方式来省略。(2)对于二维数组来说,如果对全部元素都赋初值,则定义数组时对第一维的大小可以忽略,但第二维的大小不能省。(3)只对部分元素赋初值,可有两种说明方式:一种是以“行”为单位,依次
11、列出部分元素的值;另一种是以数组元素的排列顺序依次列出前面部分元素的值。字符数组 C/C+语言中,一个字符串是用一个以空字符0作为结束符的字符串来表示的。,1.3数据类型,结构体 定义结构体 结构体定义的格式为:struct;.;结构变量名列表;结构体定义是以关键字struct作为标志的,应是一个有效的标识符。在结构体中的每个成员都必须通过“成员定义”来确定成员名及其类型。注意:结构体的成员变量类型既可以是基本数据类型,也可以是其他合法的类型。例如:struct STUDENTPERSONone;/用已定义的结构体类型声明成员float eng,phy,math,poli;/英语、物理、数学和
12、政治的成绩;,1.3数据类型,结构体 结构体变量的初始化和引用 结构体变量的初始化的一般形式是在变量后面加上:=;例如:struct POINT int x;int y;spot=20,40;/依次使spot中的x为20,y为40或POINT pt1=100,200;/使pt1中的x为100,y为200POINT pt2=100;/只是使pt2中的x为100 当一个结构体变量定义之后,就可引用这个变量。使用时,遵循下列规则:(1)只能引用结构体变量中的成员变量,使用格式:.。(2)若成员本身又是一个结构体变量,引用时需要用多个成员运算符一级一级地找到要访问的成员。,1.3数据类型,共用体共用体
13、和结构体最大的区别是:共用体在任一时刻只有一个成员处于活动状态,且共用体变量所占的内存长度等于各个成员中最长成员的长度,而结构体变量所占的内存长度等于各个成员的长度之和。共用体中各个成员所占内存的字节数各不相同,但都是从同一地址开始的。这种多个成员变量共用一个内存区的技术,能有效地降低程序所占的内存空间。定义一个共用体可用下列格式:union;.;共用体变量名列表;/注意最后的分号不要忘记。共用体除了关键字(union)不同外,其使用方法均与结构体相同。,1.3数据类型,枚举类型 枚举类型是一系列有标识符的整型常量的集合,增加程序代码的可读性。格式:enum 枚举变量;/注意最后的分号不要忘记
14、。enum是关键字,枚举常量表中的枚举常量名之间要用逗号分隔。默认时,系统为每一个枚举常量都对应一个整数,并从0开始,逐个增1。例如:enum Colors Black,Blue,Green=4,Cyan,Red=8,Yellow,White one;则各枚举常量对应的整数依次为0,1,4,5,8,9,10。枚举变量最终的值只能等于该枚举类型中的某个枚举常量,而不能用一个整型数值直接赋值,并且不要在定义枚举类型的同时,再对枚举常量、枚举变量及枚举类型名重新定义。用typedef定义类型使用关键字typedef可以将已有的类型名用新的类型名来代替,格式:typedef;,1.4运算符和表达式,算
15、术运算符 算术运算符包括双目的加减乘除四则运算符、求余运算符以及单目的正负运算符。算术运算符如下所示:+(正号运算符,如+4,+1.23等)-(负号运算符,如-4,-1.23等)*(乘法运算符,如6*8,1.4*3.56等)/(除法运算符,如6/8,1.4/3.56等)%(模运算符或求余运算符,如40%11等)+(加法运算符,如6+8,1.4+3.56等)-(减法运算符,如等)注意:(1)两个整数相除,将保留整数部分,不是四舍五入;进行浮点数除法,结果是浮点型。如7/5.0、7.0/5、7.0/5.0的结果都是1.4。(2)求余运算要求参与运算的两个操作数都是整型,其结果是两个数相除的余数。例
16、如40%5的结果是0,40%11的结果是7。要理解负值的求余运算,例如40%-11结果是7,-40%11结果是-7,-40%-11结果也是-7。,1.4运算符和表达式,赋值运算符 复合赋值 10种复合赋值运算符:+=,-=,*=,/=,%=,赋值符的结合性是从右至左的,上述的赋值是这样的过程:首先对赋值表达式nNum3=100求值,即将100赋值给nNum3,同时该赋值表达式取得值100;然后将该值赋给nNum2,这是第二个赋值表达式,该赋值表达式也取得值100;最后将100赋给nNum1。,1.4运算符和表达式,关系运算符“关系运算”是比较两个操作数是否符合给定的条件。符合条件,则关系表达式
17、的值为“真”,否则为“假”。在C+编译系统中,往往将“真”表示为“true”或1,将“假”表示为“false”或0。而任何不为0的数被认为是“真”,0被认为是“假”。关系运算需要两个操作数,所以关系运算符都是双目运算符。C+提供了下列6种关系运算符:,=,=(相等于),!=(不等于)前4种的优先级相同且高于后面的两种。关系运算符的优先级低于算术运算符 逻辑运算符 用于将多个关系表达式或逻辑量(“真”或“假”)组成一个逻辑表达式。提供3种逻辑运算符:!逻辑非(单目)将“真”变“假”,“假”变“真”。&逻辑与(双目)当两个操作数都是“真”时,结果才为“真”,否则为“假”。|逻辑或(双目)当两个操作
18、数中有一个是“真”时,结果就为“真”,而只有当它们都为“假”时,结果才为“假”。“逻辑非”、“逻辑与”和“逻辑或”的优先级依次从高到低,“逻辑非”的优先级比算术运算符和关系运算符高,“逻辑与”和“逻辑或”的优先级比关系运算符要低。,1.4运算符和表达式,位运算符 对操作数按其在计算机内表示的二制数逐位地进行逻辑运算或移位运算,参与运算的操作数只能是整型常量或变量。提供了六种位运算符:(按位求反,单目运算符)将一个二进制数的每一位求反。(右移,双目运算符)将左操作数的二进制值向右移动指定的位数。右移后,移出的低位舍弃。如果是无符号数则高位补0;如果是有符号数,则高位补符号位或补0,不同的编译系统
19、对此有不同的处理方法。&(按位与,双目运算符)将两个操作数对应的每个二进制位分别进行逻辑与操作。(按位异或,双目运算符)将两个操作数对应的每个二进制位分别进行异或操作。|(按位或,双目运算符)将两个操作数对应的每个二进制位分别进行逻辑或操作。三目运算符 唯一的三目运算符是条件运算符,格式:?:。注意:只有在表达式2后面才能出现分号结束符,“表达式1”和“表达式2”中都不能有分号。,1.4运算符和表达式,增1和减1运算符+和-可放在变量的左边也可在变量的右边,分别称前缀运算符和后缀运算符。注意:若前缀运算符和后缀运算符仅用于某个变量的增1和减1,则这两个都是等价的,但如果将这两个运算符和其他运算
20、符组合在一起,在求值次序上就会产生根本的不同:(1)如果用前缀运算符对一个变量增1(减1),则在将该变量增1(减1)后,用新的值在表达式中进行其他的运算。(2)如果用后缀运算符对一个变量增1(减1),则用该变量的原值在表达式进行其他的运算后,再将该变量增1(减1)。逗号运算符 逗号运算符是优先级最低的运算符,它可以使多个表达式放在一行上。计算时,从左至右逐个计算每个表达式,最终整个表达式的结果是最后计算的那个表达式的类型和值。例如:j=(i=12,i+8);式中,i=12,i+8 是含逗号运算符的表达式,计算次序是先计算表达式i=12,然后再计算i+8,整个表达式的值是最后一个表达式的值,即i
21、+8的值20,从而j的结果是20。,1.4运算符和表达式,1.4.9 sizeof运算符 sizeof的目的是返回操作数所占的内存空间大小(字节数),具有两种格式:sizeof()sizeof()同一类型的操作数在不同的计算机中占用的存储字节数可能不同,因此sizeof的结果有可能不一样。例如sizeof(int)的值可能是4,也可能是2。1.4.10 new和delete 运算符new返回指定类型的一个指针,分配失败则返回0。系统自动根据double类型的空间大小开辟一个内存单元,并将地址放在指针p中。运算符delete操作是释放new请求到的内存。需要注意的是:(1)运算符delete必须
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualC教程第二版 VisualC 教程 第二 语言 概述
链接地址:https://www.31ppt.com/p-5896215.html