C++讲义第2章.ppt

上传人:hwp****526 文档编号:84368496 上传时间:2023-04-05 格式:PPT 页数:63 大小:275KB
返回 下载 相关 举报
C++讲义第2章.ppt_第1页
第1页 / 共63页
C++讲义第2章.ppt_第2页
第2页 / 共63页
点击查看更多>>
资源描述

《C++讲义第2章.ppt》由会员分享,可在线阅读,更多相关《C++讲义第2章.ppt(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C+字符集:字符集:C+源程序中可以使用的字源程序中可以使用的字符符号有:符符号有:英文字符英文字符 a b c x y z A B C X Y Z大小写不同。大小写不同。数字符号数字符号 0 1 2 8 9运算符运算符 +-*/%=!.&|?:,()其他符号其他符号 ;#“”_ 空格空格 Tab 1标识符、关键字与标点符号标识符、关键字与标点符号(1)标识符)标识符 标识符是程序中变量、类型、函数等的名标识符是程序中变量、类型、函数等的名称。标识符由字母、数字和下划线称。标识符由字母、数字和下划线“_”组成,组成,第一个字符不能是数字。第一个字符不能是数字。Visual C+编译器允许使用长

2、达编译器允许使用长达247个字个字符的标识符。在标识符中恰当运用下划线、大符的标识符。在标识符中恰当运用下划线、大小写字母混用以及使用较长的名字都有助于提小写字母混用以及使用较长的名字都有助于提高程序的可读性。高程序的可读性。2(2)关键字)关键字 编译系统中使用了一些标识符,这些已有编译系统中使用了一些标识符,这些已有特殊含义和用途的标识符称为关键字或保留字。特殊含义和用途的标识符称为关键字或保留字。程序员在程序中不得将它们另作它用。程序员在程序中不得将它们另作它用。教材教材P_6页给出了页给出了VC+系统使用的关键字。系统使用的关键字。(3)标点符号)标点符号 C+中的标点符号有以中的标点

3、符号有以下下8个:个:#(),:;在在C+程序中的不同地方,规定使用不同程序中的不同地方,规定使用不同的标点符号,这是由的标点符号,这是由C+的语法规则所确定的。的语法规则所确定的。3数制数制一个数采用不同的数制就可以有不同的表一个数采用不同的数制就可以有不同的表示。示。例如数字:例如数字:3257可表示为:可表示为:3257D 6271Q CB9H 110010111001B4数制有四个基本概念:数制有四个基本概念:基基 一个数制中每一位上能够出现的符号一个数制中每一位上能够出现的符号个数,加法运算时采用逢基进一规则。个数,加法运算时采用逢基进一规则。位序位序 数制中每一位数字赋予一个序号,

4、数制中每一位数字赋予一个序号,称为位序,个位的位序号为称为位序,个位的位序号为0。高位逐位增一,。高位逐位增一,低位逐位减一。低位逐位减一。5权重权重 位序号为位序号为m的位上,单位数值对整的位上,单位数值对整个数的贡献称为该位权重,其值为基的个数的贡献称为该位权重,其值为基的m次方。次方。系数系数 数值中各位上的数值。数值中各位上的数值。我们常用的数制为十进制,即基为十。我们常用的数制为十进制,即基为十。计算机中使用的数制为二进制,即基为二。计算机中使用的数制为二进制,即基为二。二进制数的长度是各种数制中最长的,不二进制数的长度是各种数制中最长的,不易读写,因而出现了两种易读写,因而出现了两

5、种辅助数制辅助数制,八进制和,八进制和十六进制。十六进制。6对二进制整数,从个位向左毎三位一组分对二进制整数,从个位向左毎三位一组分组,三位二进制数的取值从组,三位二进制数的取值从000到到111,即为,即为0到到7,对应八进制的一位。,对应八进制的一位。如果每四位一组分组,四位二进制数的取如果每四位一组分组,四位二进制数的取值从值从0000到到1111,即为,即为0到到15,对应十六进制,对应十六进制的一位。由于数字只有的一位。由于数字只有0到到9十个,十个,10到到15这这六个数只能用六个数只能用A、B、C、D、E、F六个符号来六个符号来表示表示;也可以用小写字符。也可以用小写字符。7使用

6、计算机解决问题的过程:使用计算机解决问题的过程:要处理的对象是要处理的对象是自然世界自然世界中的客观事物,有着自中的客观事物,有着自己的行为规律,客观事物运行的世界称为客观世界。己的行为规律,客观事物运行的世界称为客观世界。人们要研究客观世界的对象,需要按照研究目的人们要研究客观世界的对象,需要按照研究目的抽象出一个模型抽象出一个模型(通常可以用数学模型表示通常可以用数学模型表示)来描述客来描述客观对象的行为规律观对象的行为规律(近似的近似的),这样的模型称为,这样的模型称为逻辑模逻辑模型型。要对逻辑模型进行求解,需要对模型进行细化,要对逻辑模型进行求解,需要对模型进行细化,列出详细的解决步骤

7、列出详细的解决步骤(流程图流程图),然后按照流程图使用,然后按照流程图使用某种算法语言进行程序设计,上机调试、运行,得到某种算法语言进行程序设计,上机调试、运行,得到结果。结果。8在建立逻辑模型的时候,会用到各种类型在建立逻辑模型的时候,会用到各种类型的数据。的数据。1.一元二次方程问题:一元二次方程问题:y=Ax2 +Bx+C在系数在系数A、B、C为定值时,给出变量为定值时,给出变量x的的值,就得到对应的变量值,就得到对应的变量y的值。的值。当设定变量当设定变量y为为0时,给定不同的系数时,给定不同的系数A、B、C的值,方程具有不同的根。的值,方程具有不同的根。这里,系数这里,系数A、B、C

8、和变量和变量x、y的取值都的取值都是实数。是实数。92.鸡兔同笼问题鸡兔同笼问题(二元一次方程二元一次方程):鸡兔同笼共鸡兔同笼共36只,鸡脚和兔脚共只,鸡脚和兔脚共100个。个。问鸡兔各几只。问鸡兔各几只。x+y=36 2x+4y=100这个问题中,方程的系数和变量这个问题中,方程的系数和变量x、y的取的取值都是非负整数。值都是非负整数。103.文件加密问题:文件加密问题:一个文本文件,在发送的时候为了保密的一个文本文件,在发送的时候为了保密的要求需要进行加密处理,即按照一定的规律对要求需要进行加密处理,即按照一定的规律对每一个字符进行数学变换成为另一种数值。接每一个字符进行数学变换成为另一

9、种数值。接收方收到文件后在进行解密。收方收到文件后在进行解密。这里要处理的数据是文本字符,在计算机这里要处理的数据是文本字符,在计算机中是按照一定的标准进行编码中是按照一定的标准进行编码(如如ASCII码码)。11在三个问题中我们处理了三种不同的数据:在三个问题中我们处理了三种不同的数据:实数实数、非负整数非负整数和和字符字符。在我们的逻辑模型中,数据的大小是随意在我们的逻辑模型中,数据的大小是随意的。对实数来说有数值的大小和数据的精度;的。对实数来说有数值的大小和数据的精度;对整数来说有数值的大小和符号;对字符来说对整数来说有数值的大小和符号;对字符来说是它的编码标准。是它的编码标准。但在计

10、算机世界中,数据的描述具有了一但在计算机世界中,数据的描述具有了一定的限制,原因在于计算机内存的有限性,决定的限制,原因在于计算机内存的有限性,决定了计算机中定了计算机中数据描述的有限字长数据描述的有限字长。12所以,计算机语言中数据的描述是有规定所以,计算机语言中数据的描述是有规定格式的,不能随意设定。格式的,不能随意设定。计算机中数据的格式称为计算机中数据的格式称为数据类型数据类型。C+语言规定了若干种基本数据类型,参加运算的语言规定了若干种基本数据类型,参加运算的数据必须是指定数据类型中的一种。数据必须是指定数据类型中的一种。13在在C+中数据类型分为两大类:中数据类型分为两大类:基本数

11、据基本数据类型类型和和导出数据类型导出数据类型。基本数据类型是基本数据类型是C+中预定义的数据类型,中预定义的数据类型,包括字符型、整型、实型。包括字符型、整型、实型。对于字符型,可分为无符号型对于字符型,可分为无符号型(unsigned)和有符号型和有符号型(signed);对于整型,可分为基;对于整型,可分为基本整型、长本整型、长(long)整型和短整型和短(short)整型、有整型、有符号长整型和短整型、无符号长整型和短整型;符号长整型和短整型、无符号长整型和短整型;对于实型,有单精度实型和双精度实型。对于实型,有单精度实型和双精度实型。14各数据类型在计算机中的表示方式。各数据类型在计

12、算机中的表示方式。字符型和整型数据分别占用一个字节和四字符型和整型数据分别占用一个字节和四个字节存储单元,在计算机内使用补码编码方个字节存储单元,在计算机内使用补码编码方法。法。补码编码方案补码编码方案正整数的补码就是它的原值。正整数的补码就是它的原值。负整数的补码是其绝对值负整数的补码是其绝对值(原值原值)各位取反各位取反后加一。后加一。西文字符采用西文字符采用ASCII码。码。ASCII码表15计算机中参加运算的整数都是补码形式,计算机中参加运算的整数都是补码形式,运算结果也是补码形式。真值和它的补码是互运算结果也是补码形式。真值和它的补码是互补的关系,所以,由结果的补码编码得到其真补的关

13、系,所以,由结果的补码编码得到其真值的方法和由真值得到补码的方法相同。值的方法和由真值得到补码的方法相同。最高位为最高位为0的数,补码等于原值。的数,补码等于原值。最高位为最高位为1的数,补码各位取反后加一,的数,补码各位取反后加一,即得到结果的绝对值,添加负号即得到真值。即得到结果的绝对值,添加负号即得到真值。16各种基本数据类型占用内存单元数和取值各种基本数据类型占用内存单元数和取值范围:范围:类类 型型名名 称称占用字节占用字节取值范围取值范围char字符型字符型1-128 127short int 短整型短整型2-32768 32767int 整型整型4-231 231-1long i

14、nt长整型长整型4-231 231-1float 实型实型(单精度型单精度型)4-1038 1038double双精度型双精度型8-10308 1030817常量常量 常量是指在程序运行过程中其值始终不变常量是指在程序运行过程中其值始终不变的量。的量。C+语言中有语言中有4种常量:整型常量、实种常量:整型常量、实型常量、字符型常量和字符串常量。常量在表型常量、字符型常量和字符串常量。常量在表达方式上既可以直接表示,也可用符号代表。达方式上既可以直接表示,也可用符号代表。直接表示的常量称为直接常量,用符号表示的直接表示的常量称为直接常量,用符号表示的常量称为符号常量。如常量称为符号常量。如1、3

15、.14、A、Hello均为直接常量,分别表示整数均为直接常量,分别表示整数1、实数、实数3.14、字符、字符A和字符串和字符串Hello。又如,习惯上用。又如,习惯上用PI代表圆周率代表圆周率3.14159,则,则PI是符号常量。是符号常量。18整型常量整型常量C+中整型常量可用以下三种形式表示:中整型常量可用以下三种形式表示:十进制整数。如十进制整数。如123,-456,0。八进制整数。由数字八进制整数。由数字07组成,且以组成,且以0开开头的整型常量是八进制常数,如头的整型常量是八进制常数,如0123。十六进制整数。以十六进制整数。以0 x开头,且符合十六开头,且符合十六进制数表示规范的常

16、数为进制数表示规范的常数为C+中的十六进制整中的十六进制整数。如数。如0 x123,0 xAB。19实型常量实型常量在在C+中含有小数点或中含有小数点或10的方幂的数为实的方幂的数为实型常量,又称为浮点数,它有两种表示形式:型常量,又称为浮点数,它有两种表示形式:(1)十进制小数形式。由十进制小数形式。由09数字和小数数字和小数点(必须有小数点)组成。如点(必须有小数点)组成。如0.12、.12、12.都是合法的实型常量。都是合法的实型常量。(2)指数形式(又称为科学表示法)。以指数形式(又称为科学表示法)。以10的方幂表示,其中基数的方幂表示,其中基数10用字母用字母E(或(或e)代替,如代

17、替,如123E3,12.3e-3代表实数。代表实数。20字符型常量字符型常量用单引号括起来的单个字符称为字符型常用单引号括起来的单个字符称为字符型常量。例如:量。例如:A,a,2,#等都是合法的字符型常量。字符型常量在等都是合法的字符型常量。字符型常量在计算机内是采用该字符的计算机内是采用该字符的ASCII编码值来表示编码值来表示的,占用的,占用1个字节的存储空间,其数据类型为个字节的存储空间,其数据类型为char型。型。ASCII码表21ASCII编码表中的字符由字母、数字、标编码表中的字符由字母、数字、标点符号以及控制字符(如回车、换行等)组成。点符号以及控制字符(如回车、换行等)组成。而

18、控制字符和单、双引号、反斜杠符用上述方而控制字符和单、双引号、反斜杠符用上述方法是无法表示的。为此,法是无法表示的。为此,C+中提供了另一种中提供了另一种表示字符型常量的方法,即所谓的表示字符型常量的方法,即所谓的“转义字符转义字符”。转义字符以转义符转义字符以转义符 开始,后跟一开始,后跟一个字符或字符的个字符或字符的ASCII码值的形式来表示一个码值的形式来表示一个字符。字符。22转义字符转义字符含含义义ASCII代码代码a响铃响铃7n换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头10t水平制表(跳到下一个水平制表(跳到下一个tab位置)位置)9b退格,将当前位置移到前退格,

19、将当前位置移到前一列一列8r回车回车,将当前位置移到本行开头,将当前位置移到本行开头13f换页换页,将当前位置移到下页开头,将当前位置移到下页开头12v竖向跳竖向跳格格8反斜反斜杠字符杠字符“”92单引单引号(撇号)字符号(撇号)字符39”双引号字符双引号字符340空字符空字符0ddd1到到3位位8进制数所代表的字符进制数所代表的字符xhh1到到2位位16进制数所代表的字符进制数所代表的字符23若转义符后跟字符的若转义符后跟字符的ASCII编码值,则其必须是编码值,则其必须是一个八进制或十六进制数,取值范围必须在一个八进制或十六进制数,取值范围必须在0255之之间。该八进制数可以以间。该八进制

20、数可以以0开头,也可以不以开头,也可以不以0开头;开头;而十六进制数必须以而十六进制数必须以X或或x开头,开头,32,x24,0,等都是合法的字符型常量。等都是合法的字符型常量。例例2.1 将大写字母转换为小写字母。将大写字母转换为小写字母。对应的小写字母的对应的小写字母的ASCII码值码值 =大写字母的大写字母的ASCII码值码值A+a或者直接写成:或者直接写成:对应的小写字母的对应的小写字母的ASCII码值码值 =大写字母的大写字母的ASCII码值码值+3224字符串常量字符串常量用双引号括起来的一串字符称为字符串常用双引号括起来的一串字符称为字符串常量。例如量。例如:Visual C+,

21、1234,A,为表示字符串的结束,系统会自动在字符为表示字符串的结束,系统会自动在字符串的尾部添加一个数值为串的尾部添加一个数值为0的字符,即转义字的字符,即转义字符符0,如图所示。字符串常量在内存中占,如图所示。字符串常量在内存中占用的实际存储字节数要比字符串中的字符个数用的实际存储字节数要比字符串中的字符个数多多1个。个。25符号常量符号常量在在C+中有两种方法定义符号常量:一种是使用中有两种方法定义符号常量:一种是使用编译预处理指令;另一种是使用编译预处理指令;另一种是使用C+的常量说明符的常量说明符const。例如:。例如:#define PI 3.14159 const float

22、pi=3.1415926;其中,符号常量其中,符号常量PI是使用编译预处理指令定义的;是使用编译预处理指令定义的;而符号常量而符号常量pi使用使用C+的常量说明符的常量说明符const定义。注定义。注意,在程序中符号常量必须先定义后引用,并且符号意,在程序中符号常量必须先定义后引用,并且符号常量在程序中只能引用,不能改变其值。常量在程序中只能引用,不能改变其值。26变量变量 在程序的执行过程中,计算的中间值需要在程序的执行过程中,计算的中间值需要存储在内存中,给这些量值取个名字,称为变存储在内存中,给这些量值取个名字,称为变量。变量是内存一块存储区的代号,存储区中量。变量是内存一块存储区的代号

23、,存储区中存放的数据是这个变量的值。存放的数据是这个变量的值。变量名必须用标识符来表示。变量根据其变量名必须用标识符来表示。变量根据其取值的不同,分为不同类型的变量:整型变量、取值的不同,分为不同类型的变量:整型变量、实型变量、字符型变量、构造型变量、指针型实型变量、字符型变量、构造型变量、指针型变量等。变量等。27对于任一变量,编译程序要为其分配若干对于任一变量,编译程序要为其分配若干个连续字节的内存单元,以便保存变量的取值。个连续字节的内存单元,以便保存变量的取值。当要改变一个变量的值时,就是把变量的新的当要改变一个变量的值时,就是把变量的新的取值存放到为该变量所分配的内存单元中;当取值存

24、放到为该变量所分配的内存单元中;当用到一个变量的值时,就是从该内存单元中复用到一个变量的值时,就是从该内存单元中复制出数据。制出数据。不管什么类型的变量,必须遵循不管什么类型的变量,必须遵循“变量的变量的说明在前,使用在后说明在前,使用在后”的原则。的原则。28变量说明变量说明 在在C+中,变量说明语句的一般格式为:中,变量说明语句的一般格式为:类型说明符类型说明符 变量名变量名1,变量名,变量名2,变量,变量名名n;int i,j,k;/说明了说明了3个整型变量个整型变量char c1,c2;/说明了说明了2个字符型变量个字符型变量float x,y,z;/说明了说明了3个实型变量个实型变量

25、double distance,weight;/说明了说明了2个双精度型变量个双精度型变量29变量说明语句可以出现在程序中语句可出变量说明语句可以出现在程序中语句可出现的任何位置。一个函数中,一变量只能作一现的任何位置。一个函数中,一变量只能作一次定义性说明。给一个变量取一个新的值时,次定义性说明。给一个变量取一个新的值时,称为对变量的赋值。取用一个变量的值时,称称为对变量的赋值。取用一个变量的值时,称为对变量的引用。对变量的赋值与引用统称为为对变量的引用。对变量的赋值与引用统称为对变量的操作或使用。一旦对变量作了定义性对变量的操作或使用。一旦对变量作了定义性说明,就可以多次使用该变量。说明,

26、就可以多次使用该变量。30变量赋初值变量赋初值 首次使用变量时,变量必须有一个确定的首次使用变量时,变量必须有一个确定的值。变量的这个取值称为变量的初值。在值。变量的这个取值称为变量的初值。在C+中可用两种方法给变量赋初值中可用两种方法给变量赋初值:(1)在变量说明时,直接赋初值。例如:在变量说明时,直接赋初值。例如:int i=1,j=2,k=3;/使使i、j、k的初值分别为的初值分别为1、2、3float x=12.3;/使使x的初值为的初值为12.3char c1=A;/使使c1的初值为的初值为A31变量直接赋初值也可以采用另一种方式,变量直接赋初值也可以采用另一种方式,如:如:floa

27、t x(12.3);/使使x的初值为的初值为12.3(2)使用赋值语句赋初值。例如:使用赋值语句赋初值。例如:float x;x=12.3;/使使x的初值为的初值为12.332一维数组的定义和引用一维数组的定义和引用 数组是若干个具有相同类型变量的有序集数组是若干个具有相同类型变量的有序集合。其中的变量称为数组的元素。合。其中的变量称为数组的元素。一维数组的定义方式为一维数组的定义方式为类型说明符类型说明符 数组名数组名常量整型表达式常量整型表达式;例如:例如:int a10;在这里,在这里,int是类型名,说明数组的元素都是类型名,说明数组的元素都是整型。是整型。a表示数组名,数组有表示数组

28、名,数组有10个元素。个元素。33说明:(说明:(1)数组名和变量名相同,遵循)数组名和变量名相同,遵循标识符命名规则。标识符命名规则。(2)常量表达式表示数组元素的个数,)常量表达式表示数组元素的个数,即数组长度。例如,即数组长度。例如,int a8;中中8表示表示a数组有数组有8个元素,下标从个元素,下标从0开始,这开始,这8个元素是个元素是a0,a1,a2,a3,a4,a5,a6,a7。注意不能使用注意不能使用a8,数组的下标是,数组的下标是0常量整常量整型表达式减型表达式减1。(3)常量表达式中可以包括整型常量和)常量表达式中可以包括整型常量和符号常量,不能包含变量。符号常量,不能包含

29、变量。34一维数组的引用一维数组的引用 通过定义语句定义了一个数组后,用户便可以随通过定义语句定义了一个数组后,用户便可以随时使用其中的任何元素。数组元素的引用是通过下标时使用其中的任何元素。数组元素的引用是通过下标运算符运算符 指明和访问的,格式为:指明和访问的,格式为:数组名数组名下标下标一个数组元素又称为下标变量,所使用的下标可一个数组元素又称为下标变量,所使用的下标可以为常量,也可以为变量或表达式,但其值必须是整以为常量,也可以为变量或表达式,但其值必须是整数,否则将产生编译错误。数,否则将产生编译错误。使用一个下标变量如同使用一个简单变量一样,使用一个下标变量如同使用一个简单变量一样

30、,可以对它赋值,也可以读取它的值。可以对它赋值,也可以读取它的值。35一维数组的初始化一维数组的初始化(1)对数组中的所有元素赋初值。例如:)对数组中的所有元素赋初值。例如:int x10=0,1,2,3,4,5,6,7,8,9;(2)可以对数组中的一部分元素赋初值。)可以对数组中的一部分元素赋初值。例如:例如:int a10=1,2,3,4,5;定义数组定义数组a有有10个元素,但花括弧内只提个元素,但花括弧内只提供供5个初值,表示前个初值,表示前5个元素的初值分别为个元素的初值分别为1,2,3,4,5,数组中的其余元素的初值为,数组中的其余元素的初值为0。36(3)在定义数组时,当给出数组

31、的全部)在定义数组时,当给出数组的全部元素的初值时,可以不指定数组的大小。例如:元素的初值时,可以不指定数组的大小。例如:int a9=0,1,2,3,4,5,6,7,8;可以写成:可以写成:int a =0,1,2,3,4,5,6,7,8;int b10;数组数组b的每个元素的值都为随机值。的每个元素的值都为随机值。37运算符与表达式运算符与表达式 在在C+中,对常量或变量进行的数据处理中,对常量或变量进行的数据处理是通过运算符来实现的。运算符是指完成对常是通过运算符来实现的。运算符是指完成对常量、变量不同运算的符号。而把参与运算的常量、变量不同运算的符号。而把参与运算的常量、变量(运算对象

32、)称为操作数。操作数通量、变量(运算对象)称为操作数。操作数通过运算符组合成过运算符组合成C+的表达式,表达式是构成的表达式,表达式是构成C+程序的一个很重要的基本要素。程序的一个很重要的基本要素。C+提供提供的运算符较多,本节只介绍的运算符较多,本节只介绍C+中的基本运算中的基本运算符和表达式,基本运算符主要指完成算术运算、符和表达式,基本运算符主要指完成算术运算、关系运算、逻辑运算的运算符。关系运算、逻辑运算的运算符。38运算符具有优先级和结合方向。如果一个运算符具有优先级和结合方向。如果一个操作数的两边有不同的运算符,首先执行优先操作数的两边有不同的运算符,首先执行优先级别较高的运算。如

33、果一个操作数两边的运算级别较高的运算。如果一个操作数两边的运算符优先级别相同,则按由左向右的方向顺序处符优先级别相同,则按由左向右的方向顺序处理。各运算符的优先顺序可以参阅表理。各运算符的优先顺序可以参阅表2.4“运算运算符的优先级别和结合方向符的优先级别和结合方向”。39算术运算符与算术表达式算术运算符与算术表达式 C+的算术运算符有:的算术运算符有:+(加加)、-(减减)、*(乘乘)、(除除)、(整除求余整除求余)。其中为除法运算符。如果除数和被除其中为除法运算符。如果除数和被除数均为整型数据,则结果也是整型,否则结果数均为整型数据,则结果也是整型,否则结果为实型。例如,为实型。例如,3/

34、2的结果为的结果为1,而,而3.0/2的结果的结果为为1.5。为整除求余运算符。运算符两侧均应为整除求余运算符。运算符两侧均应为整型数据,其运算结果为两个操作数作除法为整型数据,其运算结果为两个操作数作除法运算的余数。例如运算的余数。例如53的结果为的结果为2。40算术运算的溢出现象说明:算术运算的溢出现象说明:两正整数求和却得到负数结果,或着相反两正整数求和却得到负数结果,或着相反情况。情况。如如 char a=67,b=73,c;c=a+b;溢出的原因是要表示的数值超出了该类型溢出的原因是要表示的数值超出了该类型变量能够表示的数值范围。变量能够表示的数值范围。两实数求和数值太大超出可表示范

35、围。两实数求和数值太大超出可表示范围。41赋值运算符与赋值表达式赋值运算符与赋值表达式 C+将赋值作为一个运算符处理。赋值运将赋值作为一个运算符处理。赋值运算符为算符为“”。用一个赋值运算符将一个变量。用一个赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。和一个表达式连接起来的式子称为赋值表达式。赋值表达式的值等于赋值运算符右边表达式的赋值表达式的值等于赋值运算符右边表达式的值。它的作用是将一个数值或将一个表达式的值。它的作用是将一个数值或将一个表达式的值赋给赋值运算符左边的变量,实际上是将该值赋给赋值运算符左边的变量,实际上是将该数值存放到该变量对应的存储单元中。数值存放到该变

36、量对应的存储单元中。42赋值运算符的优先级比算术运算符的优先赋值运算符的优先级比算术运算符的优先级低,计算顺序是自右向左,即先求出表达式级低,计算顺序是自右向左,即先求出表达式的值,然后将计算结果赋给变量。的值,然后将计算结果赋给变量。a=b=4+6;先运算先运算(b=4+6)/执行后执行后b的值为的值为10,赋值表达式,赋值表达式(b=4+6)的值也为的值也为10 将将10赋给变量赋给变量a43复合赋值运算符复合赋值运算符 在在C+中,所有二元算术运算符均可与赋中,所有二元算术运算符均可与赋值运算符组合成一个单一的运算符,这种运算值运算符组合成一个单一的运算符,这种运算符称为复合赋值运算符。

37、它们是:符称为复合赋值运算符。它们是:+=(加等)(加等)-=(减等)(减等)x=(乘等)(乘等)/=(除等)(除等)%=(求余等)(求余等)使用复合赋值运算符的一般格式为:使用复合赋值运算符的一般格式为:变量变量 复合赋值运算符复合赋值运算符 表达式表达式运算时,它等同于下式:运算时,它等同于下式:变量变量=变量变量 运算符(表达式)运算符(表达式)44例如例如:a+=b+5 等同于等同于a=a+(b+5)a*=b+5 等同于等同于 a=a*(b+5)a%=b-5 等同于等同于a=a%(b-5)45自增运算符与自减运算符自增运算符与自减运算符 C+提供了两个具有给变量赋值运算作用提供了两个具

38、有给变量赋值运算作用的算术运算符,它们是自增运算符和自减运算的算术运算符,它们是自增运算符和自减运算符:符:+自增运算符,使变量的值加自增运算符,使变量的值加 1-自减运算符,使变量的值减自减运算符,使变量的值减 146这两个运算符也是这两个运算符也是C+程序中最常用的运程序中最常用的运算符。算符。+和和-都是一元运算符,且其运算对象都是一元运算符,且其运算对象一般是整型变量或指针变量。这两个运算符既一般是整型变量或指针变量。这两个运算符既可以放在作为运算对象的变量之前,也可以放可以放在作为运算对象的变量之前,也可以放在变量之后,在参加表达式运算的同时还改变在变量之后,在参加表达式运算的同时还

39、改变了作为运算对象的变量的值。了作为运算对象的变量的值。i+;(或或+i;)等价于等价于 i=i+1 i-;(或或-i;)等价于等价于 i=i-147逗号运算符与逗号表达式逗号运算符与逗号表达式 在在C+中,逗号既是运算符,又是分隔符。中,逗号既是运算符,又是分隔符。用逗号将几个表达式连接起来即构成逗号表达用逗号将几个表达式连接起来即构成逗号表达式。逗号表达式的格式为:式。逗号表达式的格式为:表达式表达式1,表达式表达式2,表达式表达式n在程序执行时,按从左到右的顺序执行组在程序执行时,按从左到右的顺序执行组成逗号表达式的各个表达式,将最后一个表达成逗号表达式的各个表达式,将最后一个表达式(表

40、达式式(表达式n)的值作为逗号表达式的值。)的值作为逗号表达式的值。48 sizeof()运算符及表达式运算符及表达式 sizeof()运算符是一元运算符,它用于计运算符是一元运算符,它用于计算某一操作数类型的字节数。算某一操作数类型的字节数。其表达式格式为:其表达式格式为:sizeof(类型类型)其中,类型可以是一个标准的数据类型或其中,类型可以是一个标准的数据类型或者是用户已自定义了的数据类型。者是用户已自定义了的数据类型。例如:例如:sizeof(int)/其值为其值为4(或或2)sizeof(float)/其值为其值为449表达式中运算符的运算顺序表达式中运算符的运算顺序 C+中有几十

41、种运算符,有严格的确定各中有几十种运算符,有严格的确定各运算符优先关系的规则。表运算符优先关系的规则。表2.4列出了列出了C+中中各种运算符的优先级别和同级别运算符的运算各种运算符的优先级别和同级别运算符的运算顺序(结合方向)。表中,优先级别的数字越顺序(结合方向)。表中,优先级别的数字越小,优先级越高。小,优先级越高。括号的优先级最高,所以如果要改变混合括号的优先级最高,所以如果要改变混合运算的运算次序,或者对运算次序把握不准时,运算的运算次序,或者对运算次序把握不准时,都可以使用括号明确规定运算顺序。都可以使用括号明确规定运算顺序。50不同类型数据间的混合算术运算不同类型数据间的混合算术运

42、算 C+规定,不同类型的数据在参加运算之规定,不同类型的数据在参加运算之前会自动转换成相同的类型,然后再进行运算。前会自动转换成相同的类型,然后再进行运算。运算结果的类型是转换后的类型。转换的规则运算结果的类型是转换后的类型。转换的规则是:级别低的类型转换为级别高的类型。各类是:级别低的类型转换为级别高的类型。各类型按级别由低到高的顺序是:型按级别由低到高的顺序是:char int unsigned long unsigned long float double。51赋值时的类型转换赋值时的类型转换(1)将实型数赋给整型变量时,去掉小数部分,)将实型数赋给整型变量时,去掉小数部分,仅取其整数部

43、分赋给整型变量。若其整数部分的值超仅取其整数部分赋给整型变量。若其整数部分的值超过整型变量的取值范围时,赋值的结果错误。过整型变量的取值范围时,赋值的结果错误。(2)将整型数赋给实型变量时,将整型数变换)将整型数赋给实型变量时,将整型数变换成实型数后,再赋给实型变量。成实型数后,再赋给实型变量。(3)将少字节整型数据赋给多字节整型变量时,)将少字节整型数据赋给多字节整型变量时,则将少字节整型数据放到多字节整型变量的低位字节,则将少字节整型数据放到多字节整型变量的低位字节,高位字节扩展少字节数据的符号位。这称为高位字节扩展少字节数据的符号位。这称为“符号扩符号扩展展”。52short int a

44、=-1;long b;b=a;short int a=1;long b;b=a;53(4)将无符号整型或长整型数赋给整型)将无符号整型或长整型数赋给整型变量时,若在整型的取值范围内,不会产生问变量时,若在整型的取值范围内,不会产生问题;而当超出其取值范围时,赋值的结果错误。题;而当超出其取值范围时,赋值的结果错误。54强制类型转换符强制类型转换符 在程序中使用强制类型转换运算符可以明确地控在程序中使用强制类型转换运算符可以明确地控制数据类型转换。强制类型转换运算符的使用格式为:制数据类型转换。强制类型转换运算符的使用格式为:(数据类型名数据类型名)变量)变量即由一个放在括号中的类型名组成,置于

45、变量即由一个放在括号中的类型名组成,置于变量(或表达式)之前,其结果是变量(或表达式)的类(或表达式)之前,其结果是变量(或表达式)的类型被转换为由强制类型转换操作符所标明的类型。型被转换为由强制类型转换操作符所标明的类型。例如,如果例如,如果i的类型为的类型为int,表达式,表达式(float)i 将将i强制转换为强制转换为float类型。类型。55简单的输入输出语句简单的输入输出语句程序在执行期间,接收外部信息的操作称程序在执行期间,接收外部信息的操作称为程序的输人,而把程序向外部发送信息的操为程序的输人,而把程序向外部发送信息的操作称为程序的输出。在作称为程序的输出。在C+中没有专门的输

46、入中没有专门的输入输出语句,所有输入输出是通过输入输输出语句,所有输入输出是通过输入输出流来实现的。输入操作是通过输入流对象出流来实现的。输入操作是通过输入流对象cin来实现的,而输出操作是通过输出流对象来实现的,而输出操作是通过输出流对象cout来实现的。要使用来实现的。要使用C+提供的输入提供的输入/输出输出流时,必须在程序的开头增加编译预处理命令:流时,必须在程序的开头增加编译预处理命令:#include56十进制整数、实数与字符数据的输入十进制整数、实数与字符数据的输入 在程序执行期间,要给变量输入十进制整在程序执行期间,要给变量输入十进制整数、实数或字符数据时,使用数、实数或字符数据

47、时,使用cin来完成,其一来完成,其一般格式为:般格式为:cin 变量名变量名1 变量名变量名2 变量名变量名n;(1)从键盘上输入数据的个数、类型及顺)从键盘上输入数据的个数、类型及顺序,必须与序,必须与cin中列举的变量一一对应。中列举的变量一一对应。57(2)cin不能将输入的空格、回车键赋给不能将输入的空格、回车键赋给字符型变量。若要把从键盘上输入的每一个字字符型变量。若要把从键盘上输入的每一个字符,包括空格和回车键都作为一个输入字符赋符,包括空格和回车键都作为一个输入字符赋给字符型变量时,必须使用函数给字符型变量时,必须使用函数cin.get()。格式为:格式为:cin.get(字符

48、型变量字符型变量);或或 字符型变量字符型变量=cin.get();该语句一次只能从输入行中取出一个字符。该语句一次只能从输入行中取出一个字符。58十六进制或八进制数据的输入十六进制或八进制数据的输入 对于整型变量,从键盘上输入的数据也可以是八进制或十对于整型变量,从键盘上输入的数据也可以是八进制或十六进制数据。六进制数据。在缺省的情况下,系统约定输入的整型数是十在缺省的情况下,系统约定输入的整型数是十进制数据。进制数据。当要求按八进制或十六进制输入数据时,在当要求按八进制或十六进制输入数据时,在cin输输入语句中必须按照以下标识符指明相应的数据进制类型:入语句中必须按照以下标识符指明相应的数

49、据进制类型:hex 表示十六进制表示十六进制oct 表示八进制表示八进制dec 表示十进制表示十进制cinhexi;/指明从键盘输入数的数制为十六进制数指明从键盘输入数的数制为十六进制数cinoctj;/指明从键盘输入数的数制类型为八进制数指明从键盘输入数的数制类型为八进制数cink;/输入从键盘输入的数仍为八进制数输入从键盘输入的数仍为八进制数59使用非十进制输入数据时,要注意以下几点:使用非十进制输入数据时,要注意以下几点:(1)八进制或十六进制数的输入,只能适用于整八进制或十六进制数的输入,只能适用于整型变量,不适用于字符型、实型变量。型变量,不适用于字符型、实型变量。(2)当在当在ci

50、n中指明使用的数制输入后,则所指明中指明使用的数制输入后,则所指明的数制一直有效,直到在后面的的数制一直有效,直到在后面的cin语句中指明使用语句中指明使用另一数制输入数据时为止。如上例中,输入另一数制输入数据时为止。如上例中,输入k的值时,的值时,仍为八进制。仍为八进制。(3)输入数据的格式、个数和类型必须与输入数据的格式、个数和类型必须与cin中所中所列举的变量类型一一对应。一旦输入出错,不仅使当列举的变量类型一一对应。一旦输入出错,不仅使当前的输入数据不正确,而且使得后面的提取数据也不前的输入数据不正确,而且使得后面的提取数据也不正确。正确。60十进制整数、实数与字符数据的输出十进制整数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁