(中职)Visual C++程序设计基础(中职)Flash 8.0基础第2章 基本数据类型及表达式ppt课件.ppt

上传人:春哥&#****71; 文档编号:71825271 上传时间:2023-02-06 格式:PPT 页数:53 大小:570.50KB
返回 下载 相关 举报
(中职)Visual C++程序设计基础(中职)Flash 8.0基础第2章 基本数据类型及表达式ppt课件.ppt_第1页
第1页 / 共53页
(中职)Visual C++程序设计基础(中职)Flash 8.0基础第2章 基本数据类型及表达式ppt课件.ppt_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《(中职)Visual C++程序设计基础(中职)Flash 8.0基础第2章 基本数据类型及表达式ppt课件.ppt》由会员分享,可在线阅读,更多相关《(中职)Visual C++程序设计基础(中职)Flash 8.0基础第2章 基本数据类型及表达式ppt课件.ppt(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、(中职)Visual C+程序设计基础(中职)Flash 8.0基础第2章 基本数据类型及表达式ppt课件Chapter2Chapter2要点:数据类型、常数、变量、运算符与表达式要点:数据类型、常数、变量、运算符与表达式要点:数据类型、常数、变量、运算符与表达式要点:数据类型、常数、变量、运算符与表达式程序主要是对数据进行处理,首先要存储数据:程序主要是对数据进行处理,首先要存储数据:程序主要是对数据进行处理,首先要存储数据:程序主要是对数据进行处理,首先要存储数据:用多大的空间存储数据、怎样存,进行什么运算用多大的空间存储数据、怎样存,进行什么运算用多大的空间存储数据、怎样存,进行什么运算

2、用多大的空间存储数据、怎样存,进行什么运算 根据数的特点决定根据数的特点决定根据数的特点决定根据数的特点决定数据类型数据类型数据类型数据类型 根据处理方法决定选用根据处理方法决定选用根据处理方法决定选用根据处理方法决定选用常量或变量或数组常量或变量或数组常量或变量或数组常量或变量或数组 同时要起名字、知道存贮结构同时要起名字、知道存贮结构同时要起名字、知道存贮结构同时要起名字、知道存贮结构 根据数据类型决定采用的运算符与表达式根据数据类型决定采用的运算符与表达式根据数据类型决定采用的运算符与表达式根据数据类型决定采用的运算符与表达式 同时要知道运算优先顺序和方向同时要知道运算优先顺序和方向同时

3、要知道运算优先顺序和方向同时要知道运算优先顺序和方向 Chapter2Chapter22.1 2.1 词法符号词法符号2.2 2.2 基本数据类型基本数据类型2.3 2.3 常量与变量常量与变量2.4 2.4 运算符与表达式运算符与表达式Chapter2Chapter22.1 词法符号词法符号2.1.1字符集字符集2.1.2标识符标识符2.1.3关键字关键字Chapter2Chapter2字符集字符集:即程序中允许出现的符号:即程序中允许出现的符号(ASCII码字符集)码字符集)每种程序设计语言都使用一些特定的字符来构造基本每种程序设计语言都使用一些特定的字符来构造基本词法单位,这些字符构成的

4、集合就叫做字符集。词法单位,这些字符构成的集合就叫做字符集。26个小写字母(个小写字母(az)、)、26个大写字母(个大写字母(AZ)10个数字(个数字(09)其他符号:其他符号:+-*/=|?%,():;.!“_#&(空格)空格)Chapter2Chapter2_同一个符号在不同位置出现时有不同的含义同一个符号在不同位置出现时有不同的含义 例:例:3*2 *p_符号单独使用与组合使用时含义不同符号单独使用与组合使用时含义不同 例:例:=与与 =&与与&_不论何种语言,在写字符串时不受字符集限制不论何种语言,在写字符串时不受字符集限制需注意的几点:需注意的几点:_字符集的字符必须是半角(字符集

5、的字符必须是半角(ASCII码字符集)码字符集)Chapter2Chapter2命名规则命名规则命名规则命名规则:以:以:以:以字母或下划线字母或下划线字母或下划线字母或下划线开头,后跟字母、数字、开头,后跟字母、数字、开头,后跟字母、数字、开头,后跟字母、数字、下划线组成的串下划线组成的串下划线组成的串下划线组成的串长度长度长度长度:标识符长度任意(:标识符长度任意(:标识符长度任意(:标识符长度任意(C+C+编译器不同)编译器不同)编译器不同)编译器不同)例例例例:name:name、totaltotal、sub_1sub_1、a11a11、_A11_A11合法合法合法合法 2b 2b、s

6、um 1sum 1、s$1s$1非法标识符非法标识符非法标识符非法标识符 标识符标识符标识符标识符:一个名字,由一串符号构成。作为标志与:一个名字,由一串符号构成。作为标志与:一个名字,由一串符号构成。作为标志与:一个名字,由一串符号构成。作为标志与识别,常用来标识常量、变量、数据类型、函数等识别,常用来标识常量、变量、数据类型、函数等识别,常用来标识常量、变量、数据类型、函数等识别,常用来标识常量、变量、数据类型、函数等Chapter2Chapter2注意:注意:_在标识符里区分大小写字母在标识符里区分大小写字母例:例:name Name NAME_一个标识符不能分行书写一个标识符不能分行书

7、写不同标识符不同标识符_习惯上取有意义的名字,如习惯上取有意义的名字,如sum、aver等,尽量不要重名。习惯上变量名、函数名常等,尽量不要重名。习惯上变量名、函数名常用小写字母用小写字母Chapter2Chapter2又叫保留字(又叫保留字(Reserved word),是预是预先定义好的,被系统占用的标识符,先定义好的,被系统占用的标识符,具有特定的含义。具有特定的含义。注:一般标识符不能取关键字注:一般标识符不能取关键字Chapter2Chapter22.2 2.2 基本数据类型基本数据类型构造类型构造类型构造类型构造类型基本类型基本类型基本类型基本类型空类型空类型空类型空类型(void

8、)(void)字符型字符型字符型字符型实型实型实型实型整型整型整型整型 枚举型枚举型枚举型枚举型类类类类(class)(class)(class)(class)略略基本型基本型(int)短整型短整型(short)长整型长整型(long)单精度型(单精度型(float)双精度型双精度型 (double)长双精度型(长双精度型(long double)P15 图图2-1指针类型指针类型指针类型指针类型*数组数组数组数组结构体结构体结构体结构体(union)(union)(union)(union)共用体共用体共用体共用体(struct)(struct)(struct)(struct)无符号型无符号

9、型(unsigned)无符号整型(无符号整型(unsigned int)无符号短整型无符号短整型(unsigned short)无符号长整型(无符号长整型(unsigned long)Chapter2Chapter2 基本数据类型基本数据类型 (P15P15表表2-22-2)N 不同数据类型的存储位数不同不同数据类型的存储位数不同,数的范围不同数的范围不同N进行数据处理时,根据数的特点决定数据类型进行数据处理时,根据数的特点决定数据类型数据类型数据类型数据类型数据类型字节范围整型整型整型整型intint4 4-2147483648-2147483648 21474836472147483647

10、字符型字符型字符型字符型charchar1 1-128 +127-128 +127实实实实型型型型单精度单精度单精度单精度 floatfloat4 41010-38-38 1010+38+38(7)(7)双精度双精度双精度双精度 doubledouble8 81010-308-308 1010+308+308(15)(15)Chapter2Chapter22.3.1 常量常量1.1.整型常量整型常量整型常量整型常量2.2.长整形常量长整形常量长整形常量长整形常量3.3.实型常量实型常量实型常量实型常量4.4.字符常量字符常量字符常量字符常量5.5.字符串常量字符串常量字符串常量字符串常量6.6

11、.符号常量符号常量符号常量符号常量 常量:常量:常量:常量:是指在是指在是指在是指在程序运行过程程序运行过程程序运行过程程序运行过程中,中,中,中,其值不变的量其值不变的量其值不变的量其值不变的量。常量都具。常量都具。常量都具。常量都具有一定的数据类型,由其表示方法决定。在程序中不必对常量有一定的数据类型,由其表示方法决定。在程序中不必对常量有一定的数据类型,由其表示方法决定。在程序中不必对常量有一定的数据类型,由其表示方法决定。在程序中不必对常量进行任何说明就可以使用。主要有以下几种:进行任何说明就可以使用。主要有以下几种:进行任何说明就可以使用。主要有以下几种:进行任何说明就可以使用。主要

12、有以下几种:2.3 常量与变量常量与变量#include void main()double r,s,a;coutr;s=2*r*3.14;a=r*r*3.14;couts=sendl;coutarea=aendl;数据是以常量或变量的形式来描述的数据是以常量或变量的形式来描述的数据是以常量或变量的形式来描述的数据是以常量或变量的形式来描述的Chapter2Chapter21.整型常量整型常量整型常量整型常量整型常量整型常量:不带小数点不带小数点不带小数点不带小数点小数表示法:由小数表示法:由小数表示法:由小数表示法:由符号符号符号符号、数字数字数字数字和和和和小数点小数点小数点小数点组成组成

13、组成组成 (必须有小数点必须有小数点必须有小数点必须有小数点)如)如)如)如-.123,-0.123-.123,-0.123-.123,-0.123-.123,-0.123指数形式:由指数形式:由指数形式:由指数形式:由尾符、尾数、阶码标志尾符、尾数、阶码标志尾符、尾数、阶码标志尾符、尾数、阶码标志e(E)e(E)e(E)e(E)、阶符、阶符、阶符、阶符、整数阶码整数阶码整数阶码整数阶码构成构成构成构成 如:如:如:如:-1.23e-3 45.6E5-1.23e-3 45.6E5-1.23e-3 45.6E5-1.23e-3 45.6E5注:注:注:注:浮点常量总是以双精度浮点常量总是以双精度

14、浮点常量总是以双精度浮点常量总是以双精度(DoubleDouble)形式出现形式出现形式出现形式出现3.实型常量实型常量又称浮点数又称浮点数double2.长整型常量长整型常量整型常量中,若在末尾加上字母整型常量中,若在末尾加上字母整型常量中,若在末尾加上字母整型常量中,若在末尾加上字母l l(或(或(或(或L L),则该常数为长整型常量),则该常数为长整型常量),则该常数为长整型常量),则该常数为长整型常量 Chapter2Chapter24.4.字符常量字符常量v一般字符一般字符常量常量:键盘上有该符号:键盘上有该符号 例:例:bv转义字符转义字符常量常量:不能从键盘上直接输入:不能从键盘

15、上直接输入以以 开始的字符序列,表示控制代码开始的字符序列,表示控制代码单引号单引号括起来的括起来的单个单个字符,字符,值为其值为其ACSII码值码值,单引号是定界符,不是常量本身的内容单引号是定界符,不是常量本身的内容如:如:如:如:a a A A 2 2,注:,注:,注:,注:00与与与与0 0不同不同不同不同如如(P15P15表表表表2-32-3)n表示回车换行表示回车换行 表示单引号表示单引号 表示双引号表示双引号Chapter2Chapter2字符常数的存储方式:ASCII码值,占一个字节码值,占一个字节如如 A 对应的对应的ASCII码值为:码值为:65=0101=0X41=010

16、00001B010000018位位A:65a:970:48Chapter2Chapter2字符串常量字符串常量:双引号双引号括起来的一串字符括起来的一串字符 例例 3a9d#=s 2天津天津ABC5.字符串常量存储:存储:依次存放各自的依次存放各自的ASCII码,尾部自码,尾部自动加动加字符串结束标志字符串结束标志0,即:,即:00110000 01000001 00111001010001003 a 9 d#=s 0长度:长度:为该串中含字符的个数,不含结束标志,为该串中含字符的个数,不含结束标志,即串长度。即串长度。上例串长度为:上例串长度为:7 7Chapter2Chapter2注:注:

17、在字符串里,可以在字符串里,可以使用转义字符使用转义字符的书写方式,以下字符串含的书写方式,以下字符串含。ASk3 (错!)(错!)ASk3例如:输出字符串例如:输出字符串 ASk30OLLEH例例:字符串字符串“HELLO”的内存表示的内存表示字符串字符串字符串字符串结束标结束标结束标结束标志志志志ASk3coutASk3;Chapter2Chapter23 3 3 3)能进行的运算不同)能进行的运算不同)能进行的运算不同)能进行的运算不同 a a a a+r r r r+5+5+5+5 合法合法合法合法 字符常量可以与整型数进行加字符常量可以与整型数进行加字符常量可以与整型数进行加字符常量

18、可以与整型数进行加/减运减运减运减运算算算算 a a a a+r r r r+5+5+5+5 非法非法非法非法 字符常量与字符串常量的区别字符常量与字符串常量的区别1)1)表现形式不同表现形式不同表现形式不同表现形式不同 字符常量用字符常量用字符常量用字符常量用 定界符不同定界符不同定界符不同定界符不同 字符串常量用字符串常量用字符串常量用字符串常量用 2)2)2)2)内存中所占空间不同内存中所占空间不同内存中所占空间不同内存中所占空间不同 a a a a :字符常量,:字符常量,:字符常量,:字符常量,存储其存储其存储其存储其ASCIIASCIIASCIIASCII码值,码值,码值,码值,占

19、据占据占据占据一个一个一个一个字节字节字节字节 a a a a :字符串常量,:字符串常量,:字符串常量,:字符串常量,占据占据占据占据两个两个两个两个字节,字节,字节,字节,即:即:即:即:a a a a 与与与与0 0 0 0 的的的的ASCIIASCIIASCIIASCII码值码值码值码值4)4)存放两者的变量不同存放两者的变量不同存放两者的变量不同存放两者的变量不同 字符常量用字符常量用字符常量用字符常量用 字符变量字符变量字符变量字符变量 字符串常量用字符串常量用字符串常量用字符串常量用 字符数组字符数组字符数组字符数组Chapter2Chapter2 6.符号常量 C+C+中常量可

20、以是中常量可以是中常量可以是中常量可以是常数常数常数常数,也可以是代表,也可以是代表,也可以是代表,也可以是代表固定不固定不固定不固定不变的值的名字变的值的名字变的值的名字变的值的名字符号常量符号常量符号常量符号常量。比如程序中经常用到。比如程序中经常用到。比如程序中经常用到。比如程序中经常用到某个常数,此时可以定义一个名字来表示此常数,某个常数,此时可以定义一个名字来表示此常数,某个常数,此时可以定义一个名字来表示此常数,某个常数,此时可以定义一个名字来表示此常数,以便改进程序的可读性。以便改进程序的可读性。以便改进程序的可读性。以便改进程序的可读性。例如例如例如例如:计算圆面积或圆周长要用

21、到计算圆面积或圆周长要用到计算圆面积或圆周长要用到计算圆面积或圆周长要用到3.1415926 3.1415926 (不能直接用(不能直接用(不能直接用(不能直接用 ),可定义为符号常量。),可定义为符号常量。),可定义为符号常量。),可定义为符号常量。定义符号常量一般形式:定义符号常量一般形式:定义符号常量一般形式:定义符号常量一般形式:constconst 数据类型数据类型数据类型数据类型 符号常量符号常量符号常量符号常量=表达式表达式表达式表达式;例如:例如:例如:例如:const double PI=3.1415926;const double PI=3.1415926;const do

22、uble PI=const double PI=;errorerror一般用大写字母一般用大写字母#include void main()double r,s,a;coutr;s=2*r*3.14;a=r*r*3.14;couts=sendl;coutarea=aendl;#include const double PI=3.14;void main()double r,s,a;coutr;s=2*r*PI;a=r*r*PI;couts=sendl;coutarea=aij;k=i+j;Chapter2Chapter2注意:注意:_不能重复定义一个变量不能重复定义一个变量例:例:int a,b

23、,c;double x,y,c;_没有存放字符串的变量没有存放字符串的变量 char a;a=d3$*j;(错错!)Chapter2Chapter22.4 运算符与表达式运算符与表达式重要重要重要重要 程序中的大部分数据处理是通过运算符和表达式来实现的,程序中的大部分数据处理是通过运算符和表达式来实现的,很多语句也是由表达式构成的。对常量或变量进行运算或处理很多语句也是由表达式构成的。对常量或变量进行运算或处理的符号称为运算符,参与运算的对象称为操作数,用运算符将的符号称为运算符,参与运算的对象称为操作数,用运算符将操作数连接起来就构成了表达式。操作数连接起来就构成了表达式。运算符在使用时,应

24、注意运算符在使用时,应注意:运算符的目数。即参与运算的操作数个数,可分为单目、运算符的目数。即参与运算的操作数个数,可分为单目、双目和三目运算符。双目和三目运算符。运算符的优先级。指不同运算符在表达式中出现时计算运算符的优先级。指不同运算符在表达式中出现时计算的次序,优先级高的先计算,优先级低的后计算。的次序,优先级高的先计算,优先级低的后计算。运算符的结合性。指相邻的两个运算符优先级别相同时运算符的结合性。指相邻的两个运算符优先级别相同时的运算次序,是从左向右算,还是从右往左算。对从左向右进的运算次序,是从左向右算,还是从右往左算。对从左向右进行运算的运算符,称为左结合,反之称为右结合。行运

25、算的运算符,称为左结合,反之称为右结合。P21P21的表的表2-42-4中列出了各种运算符及其优先级和结合性中列出了各种运算符及其优先级和结合性。Chapter2Chapter2操作数:操作数:操作数:操作数:运算符:运算符:运算符:运算符:圆括号:圆括号:圆括号:圆括号:优先级优先级优先级优先级:相邻两个运算符之间的运相邻两个运算符之间的运相邻两个运算符之间的运相邻两个运算符之间的运 算顺序算顺序算顺序算顺序结合性结合性结合性结合性:优先级相同时起作用,左、右结合性优先级相同时起作用,左、右结合性优先级相同时起作用,左、右结合性优先级相同时起作用,左、右结合性常量、变量、函数或其他表达式常量

26、、变量、函数或其他表达式常量、变量、函数或其他表达式常量、变量、函数或其他表达式改变运算符的运算次序改变运算符的运算次序改变运算符的运算次序改变运算符的运算次序_组成组成组成组成_值值值值_书写书写书写书写对数学式子要写成表达式,没有上、下标、分对数学式子要写成表达式,没有上、下标、分对数学式子要写成表达式,没有上、下标、分对数学式子要写成表达式,没有上、下标、分式,只有圆括号,乘号不能省略式,只有圆括号,乘号不能省略式,只有圆括号,乘号不能省略式,只有圆括号,乘号不能省略例如:例如:例如:例如:A+32+7.23*6/3-(4+3)/3A+32+7.23*6/3-(4+3)/3说明运算的含义

27、说明运算的含义说明运算的含义说明运算的含义2.4.1 表达式表达式表达式的组成、优先级及书写原则表达式的组成、优先级及书写原则Chapter2Chapter2v左结合:左结合:左结合:左结合:一个运算符对其操作数一个运算符对其操作数一个运算符对其操作数一个运算符对其操作数从左到右从左到右从左到右从左到右进行规进行规进行规进行规定的运算,称此运算符是定的运算,称此运算符是定的运算,称此运算符是定的运算,称此运算符是左左左左结合的。结合的。结合的。结合的。v右结合:右结合:右结合:右结合:与与与与左左左左结合相反,即:结合相反,即:结合相反,即:结合相反,即:从右到左从右到左从右到左从右到左。式子

28、式子式子式子 运算符运算符运算符运算符 c+c+表达式表达式表达式表达式 结合性结合性结合性结合性 593 */5*9/3 593 */5*9/3 左左左左结合结合结合结合结合性举例结合性举例Chapter2Chapter2表达式的书写原则n 乘号不能省略。例如,x乘以y,应书写为:x*y,而不能写成xy,这样,编译器会认为xy是一个变量名。n 括号必须成对出现,而且只能使用圆括号,表达式中可以出现多个圆括号,但是必须配对出现。n 表达式中没有上标或下标,也没有分式。例如变量名x2不能写成x2。Chapter2Chapter22.4.2 算术运算符算术运算符1.算术运算符及表达式 由算术运算符

29、连接操作数组成的表达式称为算由算术运算符连接操作数组成的表达式称为算术表达式,实现算术运算。下表按优先级由高到低术表达式,实现算术运算。下表按优先级由高到低列出了列出了C+C+中的算术运算符。中的算术运算符。算术算术运算运算符符操作操作目目数数结合结合性性-负号负号1右结右结合合*/%乘乘2左结左结合合除除2取余取余2+-加加2左结左结合合减减2Chapter2Chapter23 3 3 3、求模运算、求模运算、求模运算、求模运算%:要求两个操作数必须均为整型。:要求两个操作数必须均为整型。:要求两个操作数必须均为整型。:要求两个操作数必须均为整型。-(-(-(-(负号负号负号负号)*/%*/

30、%*/%*/%+-+-+-+-算术运算符算术运算符算术运算符算术运算符 (p20(p20 表表表表2-52-5)结合性)结合性)结合性)结合性算术表达式算术表达式算术表达式算术表达式1 1 1 1、整数相除结果为整数;、整数相除结果为整数;、整数相除结果为整数;、整数相除结果为整数;分子分子分子分子 分母分母分母分母 值为值为值为值为0 0 0 0 例例例例 3/53/53/53/5值为值为值为值为0 0 0 02 2 2 2、除数不能为、除数不能为、除数不能为、除数不能为0 0 0 0;单目单目双目双目双目双目高高低低有一个值,注意其类型有一个值,注意其类型有一个值,注意其类型有一个值,注意

31、其类型4 4 4 4、乘号不能省略、乘号不能省略、乘号不能省略、乘号不能省略注意:注意:注意:注意:Chapter2Chapter22.2.常用的数学函数常用的数学函数 C+提供了大量的内部函数供用户编程时使用。内部函数按功能可分为数学函数、字符串函数、输入输出函数、图形函数等。使用内部函数时,应把相关的头文件通过#include预处理命令包含到程序中。下表列出一些常用数学函数,使用数学函数,应在程序的最前面加入文件包含命令:#include 函数名函数名含义含义范例范例结果结果sin(x)sin(x)正弦函数正弦函数sin(0)sin(0)0 0cos(x)cos(x)余弦函数余弦函数cos

32、(0)cos(0)1 1exp(x)exp(x)以以e e为底的指数函数为底的指数函数exp(3)exp(3)20.08620.086fabs(x)fabs(x)求绝对值求绝对值fabs(-2.6)fabs(-2.6)2.62.6pow(x,y)pow(x,y)x xy ypow(2,3)pow(2,3)8.08.0sqrt(x)sqrt(x)平方根平方根sqrt(16)sqrt(16)4.04.02.4.2 算术运算符算术运算符Chapter2Chapter2 式子式子式子式子 c+c+表达式表达式表达式表达式 (a+b)/(c-d)(a+b)/(c-d)a a*a a*a asinxsin

33、xsin(x)sin(x)sqrt(g)sqrt(g)cosxcosxcos(x)cos(x)exp(x)exp(x)算术表达式举例算术表达式举例#include#include#include Chapter2Chapter2取余算术运算符取余算术运算符%两个整数相除后的两个整数相除后的两个整数相除后的两个整数相除后的余数,其符号余数,其符号余数,其符号余数,其符号和和和和被除数的符号被除数的符号被除数的符号被除数的符号相同相同相同相同。例:例:例:例:8%5 8%5 运算结果:运算结果:运算结果:运算结果:9%12 9%12 运算结果:运算结果:运算结果:运算结果:-15%12 -15%1

34、2 运算结果:运算结果:运算结果:运算结果:12%12%(-15)-15)运算结果:运算结果:运算结果:运算结果:2%2 2%2 运算结果:运算结果:运算结果:运算结果:/可对不同数据类型进行操作可对不同数据类型进行操作可对不同数据类型进行操作可对不同数据类型进行操作%只对整数进行操作只对整数进行操作只对整数进行操作只对整数进行操作区别区别区别区别3 39 9-3-312 12 0 0 Chapter2Chapter2注:注:字符型数据可以进行运算字符型数据可以进行运算char c1,c2;int i;c1=A;c2=c1+32;i=c2;存储:存储:该字符的该字符的ASCII码值码值与与整型

35、数据整型数据可可以以通用通用,可以相互赋值,可以相互赋值,占占1个字节个字节。659797Chapter2Chapter2防止整数溢出错误!防止整数溢出错误!例:例:例:例:short int i=1000,j=1000,k;short int i=1000,j=1000,k;k=i*j;k=i*j;short int short int 类型数的范围是类型数的范围是类型数的范围是类型数的范围是 3276832767 3276832767 结果:结果:结果:结果:k=1000*2000=100000032767 k=1000*2000=100000032767 产生整数溢出,但产生整数溢出,但

36、产生整数溢出,但产生整数溢出,但C+C+系统系统系统系统不报警不报警不报警不报警。要引起注意:要引起注意:要引起注意:要引起注意:可改变可改变可改变可改变i,j,ki,j,k为为为为longlong类型变量来解决。类型变量来解决。类型变量来解决。类型变量来解决。见下例见下例见下例见下例Chapter2Chapter216960=0 x424016960=0 x42401000*1000=10000001000*1000=1000000=0 x=0 xf f42404240C=1000*1000=1000000=0 xf424032767 正溢出正溢出正溢出正溢出 1 1000000000000

37、表示成表示成表示成表示成1616位是位是位是位是0 x42400 x4240是是是是1696016960的补码。的补码。的补码。的补码。Chapter2Chapter22.4.3 2.4.3 赋值运算符赋值运算符2.2.2.2.赋值表达式赋值表达式赋值表达式赋值表达式1.1.1.1.赋值运算符赋值运算符赋值运算符赋值运算符 用赋值运算符将变量和表达式连接起来则构成赋值表达式,用赋值运算符将变量和表达式连接起来则构成赋值表达式,用赋值运算符将变量和表达式连接起来则构成赋值表达式,用赋值运算符将变量和表达式连接起来则构成赋值表达式,一般形式为:一般形式为:一般形式为:一般形式为:=赋值过程赋值过程

38、赋值过程赋值过程 :先求表达式的值,转换类型,再赋值:先求表达式的值,转换类型,再赋值:先求表达式的值,转换类型,再赋值:先求表达式的值,转换类型,再赋值int a,b;int a,b;a=2.4+3.8;a=2.4+3.8;/类型不同要转换,类型不同要转换,类型不同要转换,类型不同要转换,a=6;a=6;b=a+3;b=a+3;/类型相同不需要转换类型相同不需要转换类型相同不需要转换类型相同不需要转换a=a+b;a=a+b;基本赋值运算符为基本赋值运算符为基本赋值运算符为基本赋值运算符为“=”“=”,其功能是将某个表达式的值赋给一,其功能是将某个表达式的值赋给一,其功能是将某个表达式的值赋给

39、一,其功能是将某个表达式的值赋给一个变量,即存入变量所对应的存储空间。个变量,即存入变量所对应的存储空间。个变量,即存入变量所对应的存储空间。个变量,即存入变量所对应的存储空间。优先级仅高于逗号表优先级仅高于逗号表优先级仅高于逗号表优先级仅高于逗号表达式,达式,达式,达式,从右向左从右向左从右向左从右向左Chapter2Chapter2赋值运算符的注意事项:=_由于赋值运算符是右结合性的由于赋值运算符是右结合性的由于赋值运算符是右结合性的由于赋值运算符是右结合性的,可不加括号可不加括号可不加括号可不加括号_注意注意注意注意赋值运算符不是等于号,赋值运算符左边只能赋值运算符不是等于号,赋值运算符

40、左边只能赋值运算符不是等于号,赋值运算符左边只能赋值运算符不是等于号,赋值运算符左边只能是变量名,不可以是常量或其他表达式是变量名,不可以是常量或其他表达式是变量名,不可以是常量或其他表达式是变量名,不可以是常量或其他表达式x+y=zx+y=z/error/error3=a+73=a+7/error/errorint a,b;b=(a=2.4+3.8);b=a=2.4+3.8_注意赋值表达式的值和类型注意赋值表达式的值和类型注意赋值表达式的值和类型注意赋值表达式的值和类型右右右右左左左左Chapter2Chapter2_ 双目运算符可与赋值运算符组合成复合赋值运算符。双目运算符可与赋值运算符组

41、合成复合赋值运算符。双目运算符可与赋值运算符组合成复合赋值运算符。双目运算符可与赋值运算符组合成复合赋值运算符。赋值运算符与算术运算符组合成的复合赋值运算符为:赋值运算符与算术运算符组合成的复合赋值运算符为:赋值运算符与算术运算符组合成的复合赋值运算符为:赋值运算符与算术运算符组合成的复合赋值运算符为:+=+=、-=-=、*=、/=/=、%=%=,由这些运算符连接而成的表,由这些运算符连接而成的表,由这些运算符连接而成的表,由这些运算符连接而成的表达式称为复合赋值表达式。达式称为复合赋值表达式。达式称为复合赋值表达式。达式称为复合赋值表达式。格式:格式:格式:格式:=()例如:例如:例如:例如

42、:a+=1a+=1a+=1a+=1a=a+1a=a+1a=a+1a=a+1a*=6+2a*=6+2a*=6+2a*=6+2x%=y+3x%=y+3x%=y+3x%=y+3a=a*(6+2)a=a*(6+2)a=a*(6+2)a=a*(6+2)x=x%(y+3)x=x%(y+3)x=x%(y+3)x=x%(y+3)int a=12;int a=12;int a=12;int a=12;a+=a-=a*=aa+=a-=a*=aa+=a-=a*=aa+=a-=a*=aChapter2Chapter2例例2.2 输出赋值表达式的运算结果。#include void main()int a,b,c,d,

43、e=7;a=b=1;c=5;d=a=a+1;d*=a+b;/等价于d=d*(a+b)e%=c-b;/等价于e=e%(c-b)coutat btctdte;运行结果为:2 1 5 6 3说明:使用赋值的目的是为了保存赋值号右边表达式的说明:使用赋值的目的是为了保存赋值号右边表达式的值,即保存计算结果。将计算结果保存到变量中,就可值,即保存计算结果。将计算结果保存到变量中,就可以在后面的操作中使用该值了。以在后面的操作中使用该值了。Chapter2Chapter23.3.自增、自减运算自增、自减运算_自增自减运算符自增自减运算符:+-单目单目_区别:区别:要求操作数必须是变量要求操作数必须是变量_

44、自增自减表达式:自增自减表达式:i+i+先先取值,取值,后后自加自加,等价于:等价于:i=i+1 i=i+1 +i+i 先先自加,自加,后后取值取值,等价于:等价于:i=i+1 i=i+1 -i -i 先先自减,自减,后后取值取值,等价于:等价于:i=i-1 i=i-1 i-i-先先取值,取值,后后自减自减,等价于:等价于:i=i-1i=i-1先自增减,再计算先自增减,再计算+i -i+i -i先计算,再自增减先计算,再自增减 i+i-i+i-表达式的值与变量的值表达式的值与变量的值Chapter2Chapter2程序段程序段1:#include void main()int i=1,j;j=

45、i+;couti“t”iostream.h void main()int i=1,j;j=+i;couti“t”j;2 12 1结果:结果:Chapter2Chapter2例例2.3自增、自减运算符的应用。#includevoid main()int i=2,j=2,m,n;m=i+;/n=+j;/coutmtnendl;coutitjendl;运行结果为:23 33Chapter2Chapter2功功功功能能能能:从从从从第第第第一一一一个个个个开开开开始始始始(左左左左),依依依依次次次次计计计计算算算算每每每每个个个个表表表表达达达达式式式式的的的的值值值值,最最最最后后后后(右)一个表

46、达式的值即为逗号表达式的值。(右)一个表达式的值即为逗号表达式的值。(右)一个表达式的值即为逗号表达式的值。(右)一个表达式的值即为逗号表达式的值。2.4.4 2.4.4 逗号运算符逗号运算符例:例:例:例:int a,b,c,d;int a,b,c,d;则:则:则:则:a=1,b=a+2,c=b+3 a=1,b=a+2,c=b+3值:值:值:值:C+C+中逗号也是一个运算符,在所有运算符中它的优先级别最低中逗号也是一个运算符,在所有运算符中它的优先级别最低 Chapter2Chapter2优先级别优先级别:最低最低为了将逗号表达式的值赋给变量,必须加圆括号为了将逗号表达式的值赋给变量,必须加

47、圆括号例:例:例:例:int a,b,c,d;int a,b,c,d;d=(a=1,b=a+2,c=b+3);d=(a=1,b=a+2,c=b+3);coutdendl;/coutdendl;/结果:结果:结果:结果:d=6d=6Chapter2Chapter22.4.5 2.4.5 类型转换类型转换问题提出:什么时候、为什么需要类型转换?进行双目运算时,要求两个操作数的类型必须相同:当运算符两边的操作数的数据类型不一致时,VC+系统要先转换为同一类型,然后再进行运算。即先转换,再运算,运算结果的类型同操作数的类型。两种类型转换的方法:必定转换、强制类型转换Chapter2Chapter2lo

48、nglongcharchar系统自动转换:系统自动转换:由编译系统自动完成由编译系统自动完成int doubledoublefloatfloat低低高高uchar向向unsigned unsigned intint 转换转换当操作数类型不同当操作数类型不同当操作数类型不同当操作数类型不同时系统进行的转换时系统进行的转换时系统进行的转换时系统进行的转换u floatfloat向向向向double double 转换转换转换转换操作数为字符型或短整型时,系统自动将其转换为整型;操作数操作数为字符型或短整型时,系统自动将其转换为整型;操作数操作数为字符型或短整型时,系统自动将其转换为整型;操作数操作

49、数为字符型或短整型时,系统自动将其转换为整型;操作数为单精度为单精度为单精度为单精度floatfloat型时,系统自动将其转换为双精度型时,系统自动将其转换为双精度型时,系统自动将其转换为双精度型时,系统自动将其转换为双精度doubledouble型。型。型。型。将将“所占存储空间小所占存储空间小”的的操作数的类型向操作数的类型向“所占存所占存储空间更大储空间更大”的操作数的的操作数的类型转换,然后再进行运类型转换,然后再进行运算算 1.必定转换必定转换箭头表示转换方向箭头表示转换方向箭头表示转换方向箭头表示转换方向Chapter2Chapter2A+32+7.23*6-5/3intintdo

50、ubledouble运算结果的类型为:运算结果的类型为:Chapter2Chapter22 强制类型转换 (类型名)操作数类型名)操作数或或 类型名(操作数)类型名(操作数)这也是一个表达式,该表达式的值是把操作数的数据类这也是一个表达式,该表达式的值是把操作数的数据类型强行转换为前面指定的数据类型后的值。型强行转换为前面指定的数据类型后的值。操作数:可以是常量、变量、函数、表达式操作数:可以是常量、变量、函数、表达式 若为表达式,则要用括号将表达式括起来若为表达式,则要用括号将表达式括起来一般形式:例如:例如:例如:例如:(long)2 (long)2 (long)2 (long)2(int

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

当前位置:首页 > 教育专区 > 高中资料

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

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