《2012-第02章 基本数据类型、运算符与表达式( ).ppt》由会员分享,可在线阅读,更多相关《2012-第02章 基本数据类型、运算符与表达式( ).ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第第第2 2 2 2章章章章 基本数据类型、基本数据类型、基本数据类型、基本数据类型、运算符与表达式运算符与表达式运算符与表达式运算符与表达式 掌握变量和常量的概念;掌握变量和常量的概念;掌握变量和常量的概念;掌握变量和常量的概念;掌握各种整型、字符型、浮点型变量的定义和引掌握各种整型、字符型、浮点型变量的定义和引掌握各种整型、字符型、浮点型变量的定义和引掌握各种整型、字符型、浮点型变量的定义和引用方法;用方法;用方法;用方法;掌握赋值运算符、算术运算符、位运算符、逗号掌握赋值运算符、算术运算符、位运算符、逗号掌握赋值运算符、算术运算符、位运算符、逗号掌握赋值运算符、算术运算符、位运算符、逗
2、号运算符以及运算符以及运算符以及运算符以及sizeofsizeofsizeofsizeof的使用方法;的使用方法;的使用方法;的使用方法;理解运算符的优先级和结合性的概念,记住所学理解运算符的优先级和结合性的概念,记住所学理解运算符的优先级和结合性的概念,记住所学理解运算符的优先级和结合性的概念,记住所学的各种运算符的优先级关系和结合性。的各种运算符的优先级关系和结合性。的各种运算符的优先级关系和结合性。的各种运算符的优先级关系和结合性。u学习目标学习目标 2.1 C语言数据类型C C C C数数数数据据据据类类类类型型型型基本类型基本类型基本类型基本类型构造类型构造类型构造类型构造类型指针类
3、型指针类型指针类型指针类型空类型空类型空类型空类型voidvoid定义类型定义类型定义类型定义类型typedeftypedef字符类型字符类型字符类型字符类型charchar枚举类型枚举类型枚举类型枚举类型enumenum整整整整 型型型型实型实型实型实型单精度型单精度型单精度型单精度型floatfloat双精度型双精度型双精度型双精度型doubledouble数组数组数组数组结构体结构体结构体结构体structstruct共用体共用体共用体共用体unionunion短整型短整型短整型短整型shortshort长整型长整型长整型长整型longlong整型整型整型整型intint本章所介绍本章所
4、介绍本章所介绍本章所介绍的数据类型的数据类型的数据类型的数据类型2.2 常量、变量和标识符1.标识符 定义:定义:用来标识变量、常量、函数等的字符序列用来标识变量、常量、函数等的字符序列 组成:组成:只能由只能由字母、数字、下划线字母、数字、下划线字母、数字、下划线字母、数字、下划线组成,且第一个字母必须是字母或下划组成,且第一个字母必须是字母或下划线线C C语言的关键字不能用作变量名语言的关键字不能用作变量名 大小写敏感大小写敏感 长度长度:有效长:有效长度为度为3 32 2个字符个字符。随系统而异,但至少前。随系统而异,但至少前8 8个字符有效个字符有效 命名原则:命名原则:变量名和函数名
5、中的英文字母一般用小写,以增加可读性变量名和函数名中的英文字母一般用小写,以增加可读性 见名知意见名知意不宜混淆不宜混淆 如如l l与与I,oI,o与与0 0例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$123M.D.John3days#33char$123ab .字符非法字符非法字符非法字符非法 数字数字数字数字3 3 3 3不可作首字符不可作首字符不可作首字符不可作首字符#字符非法字符非法字符非法字符非法 charcharcharchar是关键字是关键字是关键字
6、是关键字 字符非法字符非法字符非法字符非法$不可作首字符不可作首字符不可作首字符不可作首字符auto,break,case,char,continuedefault,do,double,enum,elseint,long,register,return,shortsizeof,static,struct,switch,typedefunion,unsigned,while,extern,floatfor,goto,if2.2 常量、变量和标识符2.常量 定义:定义:程序运行时其值不能改变的量(即常数)程序运行时其值不能改变的量(即常数)常量的分类常量的分类 :直接常量直接常量(值常量值常量)整
7、型常量整型常量:1010、1515、-10-10、-30-30 实型常量:实型常量:12.512.5、30.030.0、-1.5-1.5 字符常量字符常量:A A、b b、c c 字符串常量字符串常量:“sumsum”、“A A”、“123123”符号常量符号常量 用标识符来代表常量。用标识符来代表常量。其定义格式为:其定义格式为:#define define define define 符号常量符号常量符号常量符号常量 常量常量常量常量#define NUM 20#define PI 3.1415926#include#include#define PRICE 30#define PRICE
8、 30void main()void main()int num,total;int num,total;num=10;num=10;total=num*total=num*PRICEPRICE;printf(total=%d,total);printf(total=%d,total);运行结果:运行结果:total=300 行尾不能有分号行尾不能有分号行尾不能有分号行尾不能有分号 definedefinedefinedefine前面一定要有前面一定要有前面一定要有前面一定要有#符号常量名最好使用大写符号常量名最好使用大写符号常量名最好使用大写符号常量名最好使用大写 符号常量名最好有意义符号常
9、量名最好有意义符号常量名最好有意义符号常量名最好有意义 2.2 常量、变量和标识符3.变量 定义:定义:定义:定义:程序运行时其值可以被改变的量程序运行时其值可以被改变的量 变量的两要素变量的两要素变量的两要素变量的两要素 :变量名变量名 、变量值、变量值 变量的定义格式变量的定义格式变量的定义格式变量的定义格式 :变量的初始化:变量的初始化:定义时赋初始值定义时赋初始值 变量的使用:变量的使用:先定义,后赋值先定义,后赋值 变量定义位置:一般放在函数开头变量定义位置:一般放在函数开头数据类型数据类型数据类型数据类型 变量名变量名变量名变量名1111,变量名,变量名,变量名,变量名2 2 2
10、2,变量名,变量名,变量名,变量名nnnn;int x,y,z;float radius,length,area;char ch;例:int a=2,b,c=4;float data=3.67;char ch=A;int x=1,y=1,z=1;int x=y=z=1;例1:int student;stadent=19;/Undefined symbol statent in function main 例2:float a,b,c;c=a%b;/Illegal use of floating point in function main void main()int a,b=2;float
11、data;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);变量定义可执行语句2.3 简单数据类型与表示范围1.整型数据整型数据 整型常量整型常量整型常量整型常量 l l 十进制整数:十进制整数:十进制整数:十进制整数:由数字由数字由数字由数字0 0 0 09 9 9 9和正负号表示和正负号表示和正负号表示和正负号表示.如如如如:123,-456,0:123,-456,0:123,-456,0:123,-456,0l l八进制整数:由数字八进制整数:由数字八进制整数:由数字八进制整数:由数字0 0 0 0开头,后跟数字开头,后跟数字开头,后跟数字开头,后跟数
12、字0 0 0 07 7 7 7表示表示表示表示.如如如如:0123,011:0123,011:0123,011:0123,011l l十六进制整数:由十六进制整数:由十六进制整数:由十六进制整数:由0 x0 x0 x0 x或或或或0X0X0X0X开头开头开头开头,后跟后跟后跟后跟0 0 0 09,a9,a9,a9,af,Af,Af,Af,AF F F F表示表示表示表示.如如如如0 x123,0Xff 0 x123,0Xff 0 x123,0Xff 0 x123,0Xff 定义整数的符号常量定义整数的符号常量#define NUM1 20 /#define NUM1 20 /十进制数十进制数2
13、020#define NUM2 020 /#define NUM2 020 /八进制数(十进制八进制数(十进制1616)#define NUM3 0 x2a /#define NUM3 0 x2a /十六进制数(十进制十六进制数(十进制4242)思考题:下列整型常量哪些是非法的?思考题:下列整型常量哪些是非法的?012012,oX7AoX7A,0000,078078,0 x5Ac0 x5Ac,-0 xFFFF-0 xFFFF,00340034,7B7B。首字符不能首字符不能是字母是字母o o 八进制数中不八进制数中不能有数字能有数字8 8 十进制数中不十进制数中不能有字母能有字母B B 2.整
14、型变量整型变量整型变量的定义整型变量的定义整型变量的定义整型变量的定义int int int int 变量名变量名变量名变量名 ,变量名变量名变量名变量名2 2 2 2,变量名,变量名,变量名,变量名nnnn;定义时可以赋初值,方法:在变量名后面增加定义时可以赋初值,方法:在变量名后面增加定义时可以赋初值,方法:在变量名后面增加定义时可以赋初值,方法:在变量名后面增加“=数值数值数值数值”例:例:int a;int x,y,z;int m=2,y=-3;整型变量的分类整型变量的分类整型变量的分类整型变量的分类 整整整整 型(型(型(型(intintintint)int a=-2;int a=-
15、2;int a=-2;int a=-2;/定义一个有符号整型变量定义一个有符号整型变量定义一个有符号整型变量定义一个有符号整型变量a a a a,并赋初值,并赋初值,并赋初值,并赋初值-2-2-2-2 int int int int 在内存在内存在内存在内存4 4 4 4个字节长个字节长个字节长个字节长 短整型(短整型(短整型(短整型(short intshort intshort intshort int或或或或shortshortshortshort)short int a=2;short int a=2;/定义一个有符号短整型变量定义一个有符号短整型变量定义一个有符号短整型变量定义一个有
16、符号短整型变量a a a a,并赋初值,并赋初值,并赋初值,并赋初值2 2 2 2 或或或或 short a=2;short a=2;占用的内存单元为占用的内存单元为占用的内存单元为占用的内存单元为2 2 2 2个字节,无论是个字节,无论是个字节,无论是个字节,无论是TCTCTCTC、BCBCBCBC,还是,还是,还是,还是VCVCVCVC。长整型(长整型(长整型(长整型(long intlong intlong intlong int或或或或longlonglonglong)long int a=234567;long int a=234567;/定义一个有符号长整型变量定义一个有符号长整型
17、变量定义一个有符号长整型变量定义一个有符号长整型变量a a a a,并赋初值,并赋初值,并赋初值,并赋初值234567234567234567234567 或或或或 long a=234567;long a=234567;占用的内存单元为占用的内存单元为占用的内存单元为占用的内存单元为4 4 4 4个字节,无论是个字节,无论是个字节,无论是个字节,无论是TCTCTCTC、BCBCBCBC,还是,还是,还是,还是VCVCVCVC。无符号基本型(无符号基本型(无符号基本型(无符号基本型(unsigned intunsigned intunsigned intunsigned int或或或或unsi
18、gnedunsignedunsignedunsigned)unsigned int a=2;unsigned int a=2;/定义一个无符号整型变量定义一个无符号整型变量定义一个无符号整型变量定义一个无符号整型变量a a a a,并赋初值,并赋初值,并赋初值,并赋初值2 2 2 2 或或或或 unsigned a=2;unsigned a=2;无符号短整型(无符号短整型(无符号短整型(无符号短整型(unsigned short intunsigned short intunsigned short intunsigned short int或或或或unsigned shortunsigned
19、 shortunsigned shortunsigned short)unsigned short int a=2;unsigned short int a=2;/定义一个无符号短整型变量定义一个无符号短整型变量定义一个无符号短整型变量定义一个无符号短整型变量a a a a,并赋初值,并赋初值,并赋初值,并赋初值2 2 2 2 或或或或 unsigned short a=2;unsigned short a=2;无符号长整型(无符号长整型(无符号长整型(无符号长整型(unsigned long intunsigned long intunsigned long intunsigned long
20、 int或或或或unsigned longunsigned longunsigned longunsigned long)unsigned long int a=2;unsigned long int a=2;/定义一个无符号长整型变量定义一个无符号长整型变量定义一个无符号长整型变量定义一个无符号长整型变量a a a a,并赋初值,并赋初值,并赋初值,并赋初值2 2 2 2 或或或或 unsigned long a=2;unsigned long a=2;整数常量的分类整数常量的分类 根据其值所在范围确定其数据类型根据其值所在范围确定其数据类型根据其值所在范围确定其数据类型根据其值所在范围确定
21、其数据类型。如果整型常量的值位。如果整型常量的值位。如果整型常量的值位。如果整型常量的值位于于于于-32768-32768-32768-3276832767327673276732767之间,之间,之间,之间,C C C C语言认为它是语言认为它是语言认为它是语言认为它是intintintint型常量;如果整型常型常量;如果整型常型常量;如果整型常型常量;如果整型常量的值位于量的值位于量的值位于量的值位于-2147483648-2147483648-2147483648-21474836482147483647214748364721474836472147483647之间,之间,之间,之间,
22、C C C C语言认为它是语言认为它是语言认为它是语言认为它是longlonglonglong型常量。型常量。型常量。型常量。整型常量后加字母整型常量后加字母整型常量后加字母整型常量后加字母l l l l或或或或L L L L,认为它是,认为它是,认为它是,认为它是long int long int long int long int 型常量型常量型常量型常量。比。比。比。比如如如如123L123L123L123L、45l45l45l45l、0XAFL0XAFL0XAFL0XAFL。无符号数也可用后缀表示,整型常数的无符号数的后缀为无符号数也可用后缀表示,整型常数的无符号数的后缀为无符号数也可
23、用后缀表示,整型常数的无符号数的后缀为无符号数也可用后缀表示,整型常数的无符号数的后缀为U U U U或或或或u u u u。例如:例如:例如:例如:358u358u358u358u,0 x38Au0 x38Au0 x38Au0 x38Au,235Lu 235Lu 235Lu 235Lu 均为无符号数。均为无符号数。均为无符号数。均为无符号数。前缀、后缀可同时使用以表示各种类型的数。前缀、后缀可同时使用以表示各种类型的数。前缀、后缀可同时使用以表示各种类型的数。前缀、后缀可同时使用以表示各种类型的数。如如如如0XA5Lu0XA5Lu0XA5Lu0XA5Lu表表表表示十六进制无符号长整数示十六进
24、制无符号长整数示十六进制无符号长整数示十六进制无符号长整数A5A5A5A5,其十进制为,其十进制为,其十进制为,其十进制为165165165165。3.实型数据实型数据 实型常量(实数或浮点数)实型常量(实数或浮点数)实型常量(实数或浮点数)实型常量(实数或浮点数)l l 十进制小数形式:十进制小数形式:十进制小数形式:十进制小数形式:由数字由数字由数字由数字0 0 0 09 9 9 9和小数点组成和小数点组成和小数点组成和小数点组成.如如如如:0.0,5.6,-5.:0.0,5.6,-5.:0.0,5.6,-5.:0.0,5.6,-5.l l指数形式:由十进制数,加阶码标志指数形式:由十进制
25、数,加阶码标志指数形式:由十进制数,加阶码标志指数形式:由十进制数,加阶码标志e e e e或或或或E E E E以及阶码(只能为整以及阶码(只能为整以及阶码(只能为整以及阶码(只能为整数,可以带符号)组成数,可以带符号)组成数,可以带符号)组成数,可以带符号)组成.其一般形式为:其一般形式为:其一般形式为:其一般形式为:aEn aEn aEn aEn 其中:其中:其中:其中:a a a a为十进制数,为十进制数,为十进制数,为十进制数,n n n n为十进制整数,都不可缺少。其可表为十进制整数,都不可缺少。其可表为十进制整数,都不可缺少。其可表为十进制整数,都不可缺少。其可表示为示为示为示为
26、a a a a1010n n合法的实数表示:合法的实数表示:合法的实数表示:合法的实数表示:2.1E5 2.1E5 2.1E5 2.1E5 表示表示表示表示2.12.12.12.1101010105 5 5 5,3.7E-2 3.7E-2 3.7E-2 3.7E-2 表示表示表示表示3.73.73.73.710101010-2-2-2-2。非法的实数表示:非法的实数表示:非法的实数表示:非法的实数表示:345345345345(无小数点无小数点无小数点无小数点),E7E7E7E7(阶码标志阶码标志阶码标志阶码标志E E E E之前无数字之前无数字之前无数字之前无数字),-5-5-5-5(无阶码
27、标志无阶码标志无阶码标志无阶码标志),50.-E350.-E350.-E350.-E3(负号位置不对负号位置不对负号位置不对负号位置不对)实型变量实型变量实型变量实型变量 l l 单精度实型(单精度实型(单精度实型(单精度实型(floatfloat)float f=3.14,g;float f=3.14,g;这种定义的变量在内存中占这种定义的变量在内存中占这种定义的变量在内存中占这种定义的变量在内存中占4 4 4 4个字节(个字节(个字节(个字节(32323232位)的存储单元。位)的存储单元。位)的存储单元。位)的存储单元。l l双精度实型双精度实型双精度实型双精度实型(doubledoub
28、le)double x,y;double x,y;这种定义的变量在内存中占这种定义的变量在内存中占这种定义的变量在内存中占这种定义的变量在内存中占8 8 8 8个字节(个字节(个字节(个字节(64646464位)的存储单元。位)的存储单元。位)的存储单元。位)的存储单元。4.字符型数据和字符串常量字符型数据和字符串常量 字符型常量字符型常量字符型常量字符型常量 l l 定义:定义:定义:定义:用用用用单引号单引号单引号单引号括起来的单个括起来的单个括起来的单个括起来的单个普通字符普通字符普通字符普通字符或或或或转义字符转义字符转义字符转义字符.如 a A?n 101l l 字符常量的值:字符常
29、量的值:字符常量的值:字符常量的值:该字符的该字符的该字符的该字符的ASCIIASCIIASCIIASCII码码码码值值值值如 A65,a97,048,n10l l 转义字符转义字符转义字符转义字符:反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示转义字符及其含义:转义字符及其含义:转义字符及其含义:转义字符及其含义:转义字符转义字符含义含义nvradddtbf“xhh转义字符转义字符含义含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 10
30、1 -A 012 -n 376 -x61 -a 60 -0 483 -()例:A-101-x41-65例:例:例:例:转义字符举例转义字符举例转义字符举例转义字符举例#include#include void main()void main()printf(101 x42 Cn);printf(101 x42 Cn);printf(I say:How are you?n);printf(I say:How are you?n);printf(C Programn);printf(C Programn);printf(Visual C);printf(Visual C);运行结果:运行结果:运行
31、结果:运行结果:(屏幕显示屏幕显示屏幕显示屏幕显示)A B CA B CI say:”How are you?”I say:”How are you?”C ProgramC ProgramVisual CVisual C例例例例:void main()void main()printf(“Yb=n”);printf(“Yb=n”);运行结果:运行结果:运行结果:运行结果:屏幕显示:屏幕显示:屏幕显示:屏幕显示:=字符串常量字符串常量字符串常量字符串常量l l 定义:定义:定义:定义:用双引号用双引号用双引号用双引号(“”“”)括起来的字符序列括起来的字符序列括起来的字符序列括起来的字符序列l
32、l 存储:存储:存储:存储:每个字符串尾每个字符串尾每个字符串尾每个字符串尾自动自动自动自动加一个加一个加一个加一个 0000 作为字作为字作为字作为字符串结束标志符串结束标志符串结束标志符串结束标志例例例例1:1:1:1:字符串字符串字符串字符串“HELLOHELLOHELLOHELLO”在内存中在内存中在内存中在内存中0 x480 x480 x450 x450 x4C0 x4C0 x4C0 x4C0 x4F0 x4F0 0低地址低地址低地址低地址高地址高地址高地址高地址HHEELLLLOO00字符串结束标志字符串结束标志例例例例2:2:2:2:空串空串空串空串 “”“”0l l 字符常量与
33、字符串常量不同字符常量与字符串常量不同字符常量与字符串常量不同字符常量与字符串常量不同0 x41 0 x41 0例例例例 A A A A“A”“A”例:char ch;ch=“A”;例:char ch;ch=A;字符型变量字符型变量字符型变量字符型变量l l 字符型数据类型符是字符型数据类型符是字符型数据类型符是字符型数据类型符是charcharcharchar(字符(字符(字符(字符charactercharactercharactercharacter)l l 在内存中占在内存中占在内存中占在内存中占1 1 1 1个字节(个字节(个字节(个字节(8 8 8 8位)位)位)位)l l 字符变
34、量存放字符字符变量存放字符字符变量存放字符字符变量存放字符ASCIIASCIIASCIIASCII码码码码l l charcharcharchar与与与与intintintint数据间可进行算术运算数据间可进行算术运算数据间可进行算术运算数据间可进行算术运算l l 5.简单数据类型的表示范围简单数据类型的表示范围 类类型型符号符号关关键键字字占字占字节节数数数的表示范数的表示范围围整整型型有有(signedsigned)int int 在在1616位系位系统统下下2 2-32768-327683276732767 在在3232位系位系统统下下4 4-2147483648-21474836482
35、1474836472147483647(signedsigned)shortshort2 2-32768-327683276732767(signedsigned)longlong4 4-2147483648-214748364821474836472147483647无无unsigned int unsigned int 在在1616位系位系统统下下2 20 06553565535 在在3232位系位系统统下下4 40 042949672954294967295unsigned shortunsigned short2 20 06553565535unsigned longunsigned
36、long4 40 042949672954294967295实实型型有有floatfloat4 4绝对值绝对值1010-37-3710103838有有doubledouble8 8绝对值绝对值1010-307-3071010308308有有long doublelong double1010绝对值绝对值1010-4931-4931101049324932字符型字符型有有charchar1 1-128-128127127无无unsigned charunsigned char1 10 02552552.4 C语言的运算符与表达式 变量用来存放数据,运算符则用来处理数据。用运算符变量用来存放数据,
37、运算符则用来处理数据。用运算符变量用来存放数据,运算符则用来处理数据。用运算符变量用来存放数据,运算符则用来处理数据。用运算符将变量和常量连接起来的符合将变量和常量连接起来的符合将变量和常量连接起来的符合将变量和常量连接起来的符合C C C C语法规则的式子被称为语法规则的式子被称为语法规则的式子被称为语法规则的式子被称为表达式。表达式。表达式。表达式。C运运算算符符算术运算符:(算术运算符:(+-*/%+-+-*/%+-)关系运算符:(关系运算符:(=!=!=)逻辑运算符:(!逻辑运算符:(!&|&|)位运算符位运算符 :(:(|&|&)赋值运算符:(赋值运算符:(=及其扩展)及其扩展)条件
38、运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(,)指针运算符:(指针运算符:(*&)求字节数求字节数 :(:(sizeofsizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(.-.-)下标运算符:(下标运算符:()其它其它 :(:(()-()-)1.赋值运算符、赋值表达式 赋值运算符赋值运算符赋值运算符赋值运算符(“”,双目运算符),双目运算符),双目运算符),双目运算符)l l 功能:功能:功能:功能:将右边常量或变量或表达式的值赋给左边变量将右边常量或变量或表达式的值赋给左边变量将右边常量或变量或表达式的值赋给左边变量将右边常量或变量或表达
39、式的值赋给左边变量 赋值表达式赋值表达式赋值表达式赋值表达式 由赋值运算符或复合赋值运算符将一个变量和一个表达式连接起来的由赋值运算符或复合赋值运算符将一个变量和一个表达式连接起来的由赋值运算符或复合赋值运算符将一个变量和一个表达式连接起来的由赋值运算符或复合赋值运算符将一个变量和一个表达式连接起来的表达式,称为表达式,称为表达式,称为表达式,称为赋值表达式赋值表达式赋值表达式赋值表达式。l l 赋值表达式的值:赋值表达式的值:赋值表达式的值:赋值表达式的值:被赋值变量的值。被赋值变量的值。被赋值变量的值。被赋值变量的值。例如:例如:例如:例如:“a=5a=5a=5a=5”这个赋值表达式,变量
40、这个赋值表达式,变量这个赋值表达式,变量这个赋值表达式,变量a a a a的值的值的值的值“”就是它的值。就是它的值。就是它的值。就是它的值。变量变量变量变量 =常量或变量或表达式常量或变量或表达式常量或变量或表达式常量或变量或表达式赋值语句赋值语句赋值语句赋值语句 例如:例如:例如:例如:x=8;a=b=c=5x=8;a=b=c=5;l l 定义:定义:定义:定义:赋值表达式在其后面加分号就构成了赋值表达式在其后面加分号就构成了赋值表达式在其后面加分号就构成了赋值表达式在其后面加分号就构成了赋值语句赋值语句赋值语句赋值语句。赋值运算符及赋值表达式的使用赋值运算符及赋值表达式的使用赋值运算符及
41、赋值表达式的使用赋值运算符及赋值表达式的使用 l l 多个变量连续赋值多个变量连续赋值多个变量连续赋值多个变量连续赋值例如:例如:例如:例如:a=b=c=10a=b=c=10;a=(b=(c=10)a=(b=(c=10);结果:结果:结果:结果:a a、b b、c c的值都为的值都为的值都为的值都为1010l l 赋值表达式的嵌套赋值表达式的嵌套赋值表达式的嵌套赋值表达式的嵌套例如:例如:例如:例如:a=(b=2)+(c=3)a=(b=2)+(c=3)(a=(b=2)+(c=3)(a=(b=2)+(c=3)结果:结果:结果:结果:b b为为为为2 2,c c为为为为3 3,a a为为为为b+c
42、b+c即即即即5 52.强制类型转换符 强制转换强制转换强制转换强制转换 强制类型转换是通过类型转换运算来实现的。其一般强制类型转换是通过类型转换运算来实现的。其一般强制类型转换是通过类型转换运算来实现的。其一般强制类型转换是通过类型转换运算来实现的。其一般形式为:形式为:形式为:形式为:(类型说明符类型说明符类型说明符类型说明符)()()()(表达式表达式表达式表达式)例:例:例:例:float x=3.5,y=2.1,z;float x=3.5,y=2.1,z;int a;int a;a=(int)(x+y);a=(int)(x+y);/结果为结果为5 5 z=(int)x+y;z=(in
43、t)x+y;/结果为结果为5.1000005.100000 z=(double)(3/2);z=(double)(3/2);/结果为结果为1.0000001.000000 a=(int)3.6;a=(int)3.6;/结果为结果为3 3 基本算术运算符:基本算术运算符:+-*/%*/%*/%*/%l l优先级:优先级:-*/%*/%*/%*/%-+-+-+-+-说明:说明:l l “-”可为可为单目单目单目单目运算符时运算符时,右结合性右结合性l l 两整数相除,结果为整数两整数相除,结果为整数l l%要求两侧均为整型数据要求两侧均为整型数据例:例:例:例:5/2 =5/2 =-5/2.0 =
44、-5/2.0 =例:例:例:例:5%2 =5%2 =-5%2 =-5%2 =1%10 =1%10 =5%1 =5%1 =5.5%2 5.5%2 3.3.算术运算符、算术表达式算术运算符、算术表达式 2 2-2.5-2.51 1-1-11 10 0()表达式和算术表达式表达式和算术表达式3.3.算术运算符、算术表达式算术运算符、算术表达式 表达式:表达式:表达式:表达式:用运算符和括号将运算对象(常量、变量和函数用运算符和括号将运算对象(常量、变量和函数用运算符和括号将运算对象(常量、变量和函数用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合语言语法规则的式子。等)连接起来的、符合
45、语言语法规则的式子。等)连接起来的、符合语言语法规则的式子。等)连接起来的、符合语言语法规则的式子。算术表达式:算术表达式:算术表达式:算术表达式:表达式中的运算符都是算术运算符的表达式。表达式中的运算符都是算术运算符的表达式。表达式中的运算符都是算术运算符的表达式。表达式中的运算符都是算术运算符的表达式。运算符优先级(到目前为止)运算符优先级(到目前为止)运算符优先级(到目前为止)运算符优先级(到目前为止)例:例:例:例:3+5*83+5*8、(x+y)/2 -1(x+y)/2 -1等等等等类型强制转换运算符的优先级类型强制转换运算符的优先级类型强制转换运算符的优先级类型强制转换运算符的优先
46、级 算术运算符的优先级算术运算符的优先级算术运算符的优先级算术运算符的优先级赋值运算符的优先级赋值运算符的优先级赋值运算符的优先级赋值运算符的优先级 自增、自减运算符自增、自减运算符+-+-l l 作用:使变量值加作用:使变量值加1 1或减或减1 1l l 种类:种类:前置前置 +i,-i (+i,-i (先执行先执行i=ii=i+1+1或或i=i-1i=i-1,再使用再使用i i值)值)后置后置 i+,i-(i+,i-(先使用先使用i i值值,再执行再执行i=ii=i+1+1或或i=i-1i=i-1)例:例:例:例:j=3;k=+j;j=3;k=+j;j=3;k=j+;j=3;k=j+;j=
47、3;printf(“%d”,+j);j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;a=3;b=5;c=(a+)*b;/k=4,j=4/k=4,j=4/k=3,j=4/k=3,j=4/4/4/3/3/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=44.4.自增自减自增自减运算符、符号运算符运算符、符号运算符 负号运算符(负号运算符(负号运算符(负号运算符(“-”)减号()既是一个算术运算符,又是一个负
48、号运算符。负号减号()既是一个算术运算符,又是一个负号运算符。负号减号()既是一个算术运算符,又是一个负号运算符。负号减号()既是一个算术运算符,又是一个负号运算符。负号运算符是单目运算符。运算符是单目运算符。运算符是单目运算符。运算符是单目运算符。例如:例如:例如:例如:a=2a=2a=2a=2,那么,那么,那么,那么a a a a的值就是的值就是的值就是的值就是2 2 2 2。负号运。负号运。负号运。负号运算符的优先级比较高,与强制类型转换符是同一个级别。算符的优先级比较高,与强制类型转换符是同一个级别。算符的优先级比较高,与强制类型转换符是同一个级别。算符的优先级比较高,与强制类型转换符
49、是同一个级别。5.5.逗号运算符、逗号表达式逗号运算符、逗号表达式 位运算符:位运算符:位运算符:位运算符:,逗号表达式:逗号表达式:逗号表达式:逗号表达式:用逗号连接起来的表达式。其一般形式为:用逗号连接起来的表达式。其一般形式为:用逗号连接起来的表达式。其一般形式为:用逗号连接起来的表达式。其一般形式为:表达式表达式表达式表达式1 1 1 1,表达式,表达式,表达式,表达式2 2 2 2,表达式,表达式,表达式,表达式k k k k 优先级:优先级:优先级:优先级:优先级最低。优先级最低。优先级最低。优先级最低。结合性:结合性:结合性:结合性:左结合性左结合性左结合性左结合性。即逗号表达式
50、的求值顺序是即逗号表达式的求值顺序是即逗号表达式的求值顺序是即逗号表达式的求值顺序是从左向从左向从左向从左向右右右右依此计算用逗号分隔的各表达式的值。依此计算用逗号分隔的各表达式的值。依此计算用逗号分隔的各表达式的值。依此计算用逗号分隔的各表达式的值。逗号表达式逗号表达式逗号表达式逗号表达式的值:的值:的值:的值:最后一个表达式的值就是整个逗号表达最后一个表达式的值就是整个逗号表达最后一个表达式的值就是整个逗号表达最后一个表达式的值就是整个逗号表达式的值。式的值。式的值。式的值。用途:用途:用途:用途:常用于循环常用于循环常用于循环常用于循环forforforfor语句中语句中语句中语句中。例