版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 2 2 章章 C C语言的基本数据类型语言的基本数据类型与表达式与表达式 2.1 C2.1 C语言的基本数据类型语言的基本数据类型 2.2 2.2 常量与变量常量与变量 2.3 2.3 运算符与表达式运算符与表达式 2.4 2.4 数据类型转换数据类型转换C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页教学目的和基本要求:教学目的和基本要求:要求学生清楚数据类型与变量、常量的关系,掌握各种常量的性质和定义,掌握表达式中各种运算符的功能和特点,明白产生副作用的原因,了解数据类型的相互转换规则。 教学重点:教学重点:数据类型、常量定义,运算符与表达式。 C语言
2、程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 存取数据必须先确定数据的编码方式、存储格式和存取数据必须先确定数据的编码方式、存储格式和所占的存储长度,所占的存储长度, C语言中把这三者结合起来,给出语言中把这三者结合起来,给出几种固定的形式,这些形式就是最基本的几种固定的形式,这些形式就是最基本的数据类型数据类型。2.1 C2.1 C语言的基本数据类型语言的基本数据类型为什么要设置数据类型?为什么要设置数据类型? 在计算机中使用一定长度的存储单元一定长度的存储单元(通常是字节的倍数)来存储数据。 存储的编码方式编码方式有:原码、反码、补码、ASCII码。 存储的存
3、储格式存储格式有:定点型、浮点型。 其中,用于存储数据的存储单元的长度决定了用于存储数据的存储单元的长度决定了数据取值范围的大小。数据取值范围的大小。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 字符字符型(型(charchar) 整型整型(short,int,long,unsignedshort,int,long,unsigned) 单精度型(单精度型(floatfloat) 实型实型 双精度型(双精度型(doubledouble) 枚举类型(枚举类型(enumenum) 数组类型(数组类型( ) 构造类型构造类型 结构体类型(结构体类型(structst
4、ruct) 共用体类型(共用体类型(unionunion) 指针类型(指针类型(* *) 空类型(空类型(voidvoid)基本类型基本类型数据类型数据类型一、数据类型概述本章中将对基本类型中的前三类进行介绍和学习。本章中将对基本类型中的前三类进行介绍和学习。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 变量:变量:指指以标识符为名字,其值可以改变的量。以标识符为名字,其值可以改变的量。 在学习各种数据类型之前,我们先简单了解一下常量常量和变量变量的概念。后面的章节中将会详细介绍。 常量常量:指在程序运行中指在程序运行中,其数值不能被改变的量。其数值不能被改
5、变的量。 变量变量 代表计算机内存中的某一存储空间,代表计算机内存中的某一存储空间,变量的类型决定了该存储空间的长度和其变量的类型决定了该存储空间的长度和其中存放中存放数据的编码方式及存储格式。数据的编码方式及存储格式。 变量的类型也决定了该存储空间中存放变量的类型也决定了该存储空间中存放数据的数据形式和取值范围。数据的数据形式和取值范围。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 * 八进制的数码范围为八进制的数码范围为07; 018 * 十六进制的十六进制的数码除了数字数码除了数字0 09 9外外, , 还使用英文字母还使用英文字母a f (或或A F
6、)表示表示1015。 如:如:0 x1e 二、整型(采用定点整数的存储格式,只能表示纯整数)1 1、整型常量:整型常量:(1) (1) 十进制形式十进制形式: :与数学上的整数表示相同;与数学上的整数表示相同; 例如例如: 12, -100, 0: 12, -100, 0 (2) (2) 八进制形式八进制形式: :在数码前加数字在数码前加数字0 0; 例如例如: 012=1: 012=1* *8 81 1+2+2* *8 80 0=10(=10(十进制)十进制) (3) (3) 十六进制形式十六进制形式: :在数码前加在数码前加0 0X X(数字数字0和字母和字母X)。)。 例如例如: 0:
7、0 x12=1x12=1* *16161 1+2+2* *16160 0=18(=18(十进制)十进制)C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 如如Turbo C中,有中,有 short(2字节字节)int(2字节字节) long(4字节字节) 关键字关键字 所占位数所占位数 取值范围取值范围 short 16 short 16 -32768-327683276732767 unsigned short 16 unsigned short 16 0 06553565535 int 16 int 16 -32768-327683276732767 uns
8、igned 16 unsigned 16 0 06553565535 long 32 -2147483648 long 32 -214748364821474836472147483647 unsigned long 32 unsigned long 32 0 042949672954294967295 2、整型变量的分类:整型变量的分类: 根据数据所占的存储长度的不同分为根据数据所占的存储长度的不同分为: :int、short、long; 同样存储长度的数据又分同样存储长度的数据又分unsigned、signed; 故可组合出六种类型。故可组合出六种类型。3、整型变量的值域:整型变量的值域:
9、由机器中数据的存储长度决定由机器中数据的存储长度决定思考:思考:int a=20000,b=20000,c; c=a+b; c的值为多少?的值为多少?如果如果c定义为定义为long型是否能解决问题?型是否能解决问题?C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页2、实型变量的分类及值域实型变量的分类及值域: 关键字关键字 字节数字节数 取值范围取值范围 精度精度( (位位) ) float 4 float 4 3.4 3.41010-38 3.43.4101038 7 7 double 8 double 8 1.7 1.71010-308 1.71.71010
10、308 1515注意注意三、实型1 1、常量:常量:(1) (1) 十进制小数形式:十进制小数形式:由数字和小数点组成;由数字和小数点组成; 例如例如: 3.4, 4., .3: 3.4, 4., .3。(2) (2) 指数形式:指数形式:“十进制小数十进制小数”+“ e(+“ e(或或E)”+“E)”+“十进制数整十进制数整数数”。 例如例如: 12.5: 12.5e-6e-6 表示表示12.512.51010-6 。 小数点不能单独出现;小数点不能单独出现; 0.0. .0 .0 . . e e或或E E的两边必须有数,且其后面必须为整数;的两边必须有数,且其后面必须为整数; 如:如: 6
11、 6E0.2 E0.2 e5e5 C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 字符形式字符形式 功能功能 n n 换行换行 t t 横向跳格横向跳格 b b 退格退格 r r 回车回车 反斜杠字符反斜杠字符 单引号字符单引号字符 ddd 8ddd 8进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符 xhh 16xhh 16进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符四、字符类型1 1、常量:常量: (1) (1) 用单引号括起来的一个字符;如:用单引号括起来的一个字符;如:A、 1、?等等。 (2) (2) 用单
12、引号括起来的由反斜杠用单引号括起来的由反斜杠( ( ) )引导的转义字符。引导的转义字符。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页4 4、字符串常量:字符串常量: 是用一对双引号括起来的字符序列。是用一对双引号括起来的字符序列。 注意:每个字符串的后面都有一个注意:每个字符串的后面都有一个00结束符。结束符。 如:如:“SHANGHAI”SHANGHAI”,“AbcdeFGHijkAbcdeFGHijk”,“How are How are you”you”。 注意注意 a a与与“a”a”的区别。的区别。例如:字符例如:字符A A的的ASCIIASCII
13、码为:码为: 65D65D(十进制)(十进制)=41H=41H(十六进制)(十六进制)=101Q=101Q(八进制)(八进制) 字符字符A A可以表示为可以表示为AA、x41x41、101101。2、字符型变量的分类:字符型变量的分类: char char 和和 unsigned charunsigned char;3 3、值域值域(字符型可参与数学运算,也可看成一种一字节的整型变量)(字符型可参与数学运算,也可看成一种一字节的整型变量) 每个字符型数据在内存中占每个字符型数据在内存中占一一个字节;包括个字节;包括ASCIIASCII字符表字符表中的所有字符(可显示字符和非显示字符)。中的所有
14、字符(可显示字符和非显示字符)。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页一、常量与符号常量 常量常量是指在程序运行中是指在程序运行中,其数值不能被改变的量。其数值不能被改变的量。 常量常量又可分为直接常量和符号常量。又可分为直接常量和符号常量。2.2 2.2 常量与变量常量与变量C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 120 、 -100、 0; 0120、 072; 0 xFFFF、 0 x1e、0X28AF,0XED4 ; 120L, 200L ; 长整型常量长整型常量 3.14、 -3.1、 5.12E-6
15、 ; a 、#、n、101 ; 099、12f、 0 xg 、48EA ; 019.5 、1e-08; 实型常量只能用十进制形式表示实型常量只能用十进制形式表示 2.1E10.2、E-6、6.4E+4.8、E9 ; changsha 、+?ab ; 、p 、ab ;1、直接常量:直接常量:是在程序中直接引用的数据。是在程序中直接引用的数据。请判断这些常量正确与否:请判断这些常量正确与否:C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 定义形式定义形式: #define 标识符标识符 常量数据常量数据 例如例如: #define PI 3.14159 在程序预处
16、理时,凡是出现标识符在程序预处理时,凡是出现标识符PI的地方都将用的地方都将用数据数据3.14159来替换。来替换。 如如: 2*2.3*PI 就就等价于等价于 2*2.3*3.14159。 变量是指变量是指以标识符为名字,其值可以改变的量。以标识符为名字,其值可以改变的量。 变量代表计算机内存中的某一存储空间,该存储空间变量代表计算机内存中的某一存储空间,该存储空间 中存放中存放的数据就是变量的值。的数据就是变量的值。 在同一程序块中,在同一程序块中,变量变量不能被重复定义。不能被重复定义。 使用变量时必须使用变量时必须“先定义,后使用先定义,后使用”。 2、符号常量符号常量 是是用标用标识
17、符来表示一个数据;识符来表示一个数据;在程序不能给它赋值。在程序不能给它赋值。二、 变量C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页1、定义形式:定义形式:类型标识符类型标识符 变量名变量名1 ,变量名变量名2,变量名变量名3.; 自己设定,满足自己设定,满足标识符的规定。标识符的规定。如:如:int,int,float,charfloat,char;不可省;不可省2、变量初始化变量初始化 在定义变量的同时给变量一个初始值。在定义变量的同时给变量一个初始值。 注意注意int a=5, b=3; int a=5, b=3; int a=b=c=3; int a
18、=b=c=3; int a,b,c; a=b=c=3; int a,b,c; a=b=c=3; 例如例如:int a,b,c ; float x,y; char c1,c2; 或或 int c1,c2; 定义变量就是在内存中划出一块相应类型的存储空间存放该变量的值。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 mainmain( ) int x int x,y y,z z,w w; / /* *定义定义x x,y y,z z,w w为整型变量为整型变量* */ / unsigned int k unsigned int k; / /* *定义定义k k为无符
19、号整型变量为无符号整型变量* */ / x=10 x=10;y=-20y=-20;k=30k=30; z=x+kz=x+k;w=y+kw=y+k; printfprintf(“x+k=%dx+k=%d,y+k=%dn”y+k=%dn”,z z,w w); ; 例例2-1:程序运行结果为:程序运行结果为: x+k=40 x+k=40,y+k=10y+k=10 变量根据作用域的不同可分为变量根据作用域的不同可分为局部变量局部变量和和全局变量全局变量,根据存,根据存储方式的不同可分为储方式的不同可分为静态存储变量静态存储变量和和动态存储变量动态存储变量,这些我们将,这些我们将在第六章中详细介绍。在第
20、六章中详细介绍。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 在数学里当多个运算符一起组成一个表达式时,我们规在数学里当多个运算符一起组成一个表达式时,我们规定了定了优先级优先级(先乘除后加减)和(先乘除后加减)和结合规则结合规则(从左至右)。(从左至右)。 同样,在同样,在C语言中,我们也规定了每个运算符的结合规语言中,我们也规定了每个运算符的结合规则及运算符之间的优先级。则及运算符之间的优先级。2.3 2.3 运算符与表达式运算符与表达式运算符:就是表示某种运算功能的符号。运算符:就是表示某种运算功能的符号。 按操作功能运算符大致可分为:按操作功能运算符
21、大致可分为:算术运算符、关系算术运算符、关系运算符、逻辑运算符、赋值运算符、运算符、逻辑运算符、赋值运算符、条件运算符、逗号运条件运算符、逗号运算符以及算符以及按位运算符按位运算符等。等。 表达式:是由操作数和运算符组成的序列。表达式:是由操作数和运算符组成的序列。 如:如:1+2*3-4 、 35-7 、a=b%2 等都是等都是C语言中的表达式。语言中的表达式。 下面分类介绍各种运算符:下面分类介绍各种运算符:C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页%(%(取余取余)()(注意:取余运算的操作数只能是整数,且结注意:取余运算的操作数只能是整数,且结 果
22、的符号与前一操作数的符号相同果的符号与前一操作数的符号相同) ) 一、一、 算术运算符和算术表达式算术运算符和算术表达式1 1、 运算符运算符 +(+(加加) ):3+43+4、 +3+3 -( -(减减) ):3-53-5、 -5-5 * *( (乘乘) ):3 3* *5 5 /( /(除除) ):5/25/2、5.0/2 5.0/2 (注意,此二种形式,结果不同)(注意,此二种形式,结果不同)5%35%3的值为的值为2 2; -5%3-5%3的值为的值为-2-2;5%(-3)5%(-3)的值为的值为2 2; -5%(-3)-5%(-3)的值为的值为-2-2;12.3%3 12.3%3 若
23、若a%b a%b 的结果为的结果为0 0,则有,则有a a能被能被b b整除整除C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 2 2、算术表达式算术表达式 用算术运算符和括符将操作数连接起来的式子。用算术运算符和括符将操作数连接起来的式子。 优先级:()优先级:() * *、/ /、% +% +、- - 结合性:从左至右;结合性:从左至右; 表达式的值:表达式的值: 数值型数值型( (intint、longlong、unsignedunsigned、floatfloat、double)double);例如:例如: 已知:已知: float a=2.0;flo
24、at a=2.0; int b=6,c=3;int b=6,c=3; 求解:求解: a a* *b/c-1.5+a+fabs(-5)=b/c-1.5+a+fabs(-5)=?C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 float a=2.0;float a=2.0; int b =6,c =3; int b =6,c =3; a a* *b/c -1.5 +a +fabs(-5)b/c -1.5 +a +fabs(-5)12.012.0/3/354.0 4.0 - 1.5- 1.52.5 2.5 + 97(+ 97(int)int)99.99.5 5 +
25、5+ 5104.104.5 5(double)(double)思考思考 int a=1,b=2; 表达式表达式a/b+3的结果是多少?的结果是多少? int a=10000,b=30000; 表达式表达式a+b的结果是多少?的结果是多少? 如何修改?如何修改? double floatunsigned long long unsigned int int char,shortC语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页等价于:等价于:j=i;i+; j=i;i+; 所以所以i i的值为的值为4 4,j j的值为的值为3 3等价于:等价于:i+;j=i; i+
26、;j=i; 所以所以i i的值为的值为4 4,j j的值为的值为4 4(1) i=3;(1) i=3; j=i+; j=i+; (2) i=3;(2) i=3; j=+i; j=+i;3 3、自增与自减运算符自增与自减运算符 (+ 、-) +i,-i+i,-i:使用之前使:使用之前使i i的值增的值增1 1(或减(或减1 1);); i+,i- i+,i-:使用之后使:使用之后使i i的值增的值增1 1(或减(或减1 1););分析下面几种情况中分析下面几种情况中i与与j的值:的值: 当当+、 -不与其他运算符混合使用时,不与其他运算符混合使用时,+i+i与与i+i+都等价于都等价于 i=i+
27、1, -ii=i+1, -i与与i-i-都等价于都等价于 i=i-1i=i-1C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 如:如:i = 2;i = 2; j = -i+; j = -i+; 求执行完这两句后求执行完这两句后i i与与j j的值分别是多少的值分别是多少特殊的:设特殊的:设i=3i=3,j=4j=4,k=i+jk=i+j, k= i= k= i= j= j= 结合性:自右至左。结合性:自右至左。分析:分析:“+”与与”- -“是同优先级,且都高于是同优先级,且都高于“=”=” 按结合规则,等价于:按结合规则,等价于:j=-(i+);j=-(i
28、+); 结果:结果:i i的值为的值为3 3,j j的值为的值为-2-2。再看几个例子:再看几个例子:如:设如:设i=3i=3,k=(i+)+(i+)+(i+) k= k=(i+)+(i+)+(i+) k= i= i=96如:设如:设a=3,b=(a+)+(a+) b= a=3,b=(a+)+(a+) b= a= a=65设设a=3,b=(+a)+(a+) b= a=a=3,b=(+a)+(a+) b= a=85设设a=3,b=(a+)+(+a) b= a=a=3,b=(a+)+(+a) b= a=85设设a=3,b=(+a)+(+a) a=3,b=(+a)+(+a) b= a= b= a=1
29、05744C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 1 1、6 6种关系运算符:种关系运算符: = = != = = != 2 2、关系表达式:关系表达式:用关系运算符将表达式连接起来的式子用关系运算符将表达式连接起来的式子 优先级优先级: ( = )( = ) ( =( = != ) != ) 结合性结合性:自左至右;:自左至右; 表达式的值表达式的值: 若为真,则结果为若为真,则结果为1 1; 若为假,则结果为若为假,则结果为0 0。35 35 值为:值为: 32 32 值为:值为: 设设x=-2; -3x-1 x=-2; -3x-1 值为:值为:
30、设设x=1; 2x4 x=1; 2x4 值为:值为:例如例如二、关系运算符和关系表达式二、关系运算符和关系表达式求如下关系表达式的值:求如下关系表达式的值:0001算术运算符优先级高于关系运算符算术运算符优先级高于关系运算符3+(43)3+(43)* *4 4 值为:值为: 3+43+43 & | 结合性:自左至右;结合性:自左至右; 表达式的值:表达式的值: 若为真,则结果为若为真,则结果为1 1; 若为假,则结果为若为假,则结果为0 0。 三、逻辑运算符和逻辑表达式三、逻辑运算符和逻辑表达式 1 1、3 3种逻辑运算符:种逻辑运算符: & | !& | !参与逻辑运
31、算的操作数叫逻辑量。参与逻辑运算的操作数叫逻辑量。逻辑量可以是整型、实型、字符型和指针类型,逻辑量可以是整型、实型、字符型和指针类型,其中,其中,0 0,0.00.0,0,0,NULLNULL代表代表假假,其余逻辑量代表,其余逻辑量代表真真。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 int a=5; float b=3.5; !a ( ) !(a b) ( ) a & b ( ) !a&b ( ) !a&!b ( ) !(a&b) ( ) a b ( ) !a|b ( ) !a|!b ( ) !(a|b) ( ) (a 0
32、) ( ) (a 0) ( )例如例如011000110001C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页例如表达式运算如下:例如表达式运算如下:混合优先级:混合优先级: ! ! 高高 算术运算符算术运算符 关系运算符关系运算符 &和和| | 赋值运算符赋值运算符 低低 4 - 04 - 01 & 21 & 28 48 3 & 2 | 8 3 & 2 | 8 4 - !5C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页例如:例如: (1)(1)a = 0; b = 1; a = 0; b
33、 = 1; c = a+ & ( b = 3 ); c = a+ & ( b = 3 ); 执行后执行后: a: a为为 ,b,b为为 ,c,c为为 。 逻辑或优化和逻辑与优化:逻辑或优化和逻辑与优化: 在逻辑表达式的求解中,并不是所有的逻辑运算符都在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。达式的解时,才执行该运算符。110(2)(2)a = 1; b = 1; c=0;a = 1; b = 1; c=0; d = -a d = -a b- b- (c
34、 = b+3 ); (c = b+3 ); 执行后执行后: a: a为为 ,b,b为为 ,c,c为为 ,d,d为为 。0001C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页例如:例如: (1) n(1) n是小于是小于m m的偶数:的偶数: (2)year(2)year是闰年是闰年: : (能被(能被4 4整除但不能被整除但不能被100100整除整除, ,或能被或能被400400整除)整除)逻辑表达式一般用于控制语句中的条件:逻辑表达式一般用于控制语句中的条件:n m & n % 2 = 0n m & n % 2 = 0 year % 4 =
35、0 & year % 100 != 0 | year % 400 = 0C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页例如例如:(1) (1) x=(y=12)/4 x=(y=12)/4 (2) x=y=12/4 (2) x=y=12/4 (3) x=(y=12/4) (3) x=(y=12/4) (4)(x=y)=12/4(4)(x=y)=12/4四、赋值运算符和赋值表达式四、赋值运算符和赋值表达式 1 1、赋值运算符赋值运算符 = = ( (执行功能:把执行功能:把= =右边的表达式的值,存入右边的表达式的值,存入= =左边的左边的变量变量对应的存
36、储空间,即给此变量赋值对应的存储空间,即给此变量赋值) 3=2+1 a=a+2) 3=2+1 a=a+2 2 2、赋值表达式:赋值表达式:用赋值运算符将变量和表达式连接起来的式子用赋值运算符将变量和表达式连接起来的式子 形式形式: : = 求值规则求值规则: : 将将“=”=”右边表达式的值赋给左边的变量。右边表达式的值赋给左边的变量。 优先级:优先级: ! ! 算术算术 关系关系 & & | | 赋值赋值 结合性:自右至左;结合性:自右至左; 表达式的值:表达式的值:被赋值变量的值被赋值变量的值。y y值为值为1212,x x值为值为3 3,表达式的值为,表达式的值为3 3y
37、 y值为值为3 3,x x值为值为3 3,表达式的值为,表达式的值为3 3y y值为值为3 3,x x值为值为3 3,表达式的值为,表达式的值为3 3 C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页练习:练习:设设a=12a=12,计算表达式,计算表达式a+=a-=aa+=a-=a* *1212和和a+=a-=aa+=a-=a* *=12=12的值的值 3 3、复合赋值运算符复合赋值运算符 * *= =、/=/=、 %=%=、 +=+=、 -=, =-=, =, &=, &=、 =、 = 复合运算符是一个运算符复合运算符是一个运算符, ,但功能
38、上但功能上, ,是两个运算符功是两个运算符功能的组合。能的组合。例如例如: a+=b : a+=b 相当于相当于 a=a+ba=a+b a a* *=b =b 相当于相当于 a=aa=a* *b b注意:注意:a a* *=b+c =b+c 相当于相当于 a=aa=a* *(b+c) (b+c) 而不是而不是 a=aa=a* *b+cb+c 优先级:优先级: 与与 = = 是同一优先级。是同一优先级。 结合性:自右至左;结合性:自右至左; 表达式的值:表达式的值:被赋值变量的值被赋值变量的值。-2640C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 求值规则:
39、求值规则: 先求解表达式先求解表达式1 1的值的值 若为真若为真( (非非0),0),求解表达式求解表达式2 2,并把表达式,并把表达式2 2的值的值 作为整个条件表达式的值作为整个条件表达式的值 若为假若为假(0),(0),求解表达式求解表达式3 3,并把表达式,并把表达式3 3的值作的值作 为整个条件表达式的值为整个条件表达式的值 四、其它运算符四、其它运算符 1 1、条件运算符条件运算符 ? ?和和: : , ,它们与三个操作数组组成三元运算。它们与三个操作数组组成三元运算。 形式为形式为: : ? ? :3 优先级:优先级: 逻辑逻辑 条件条件 赋值赋值 结合性:自右至左;结合性:自右
40、至左;C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页2 2、逗号运算符:逗号运算符: , 形式形式: : 表达式表达式1 1,表达式,表达式2 2,表达式,表达式n n 求值规则求值规则: : 从左至右依次计算各表达式的值从左至右依次计算各表达式的值; 优先级:优先级: 最低;最低; 结合性:自左至右;结合性:自左至右; 表达式的值:最后一个表达式的值。表达式的值:最后一个表达式的值。又如:又如: y = x10 ? x/10 : x0 ? x: -xy = x10 ? x/10 : x0 ? x: -x 当当x x的值为整型的的值为整型的1515时,表达式的
41、结果为:时,表达式的结果为: 当当x x的值为整型的的值为整型的5 5时,表达式的结果为:时,表达式的结果为:15 5例如例如: : intint max, max,a=5a=5,b=3;b=3; max=ab?a:b max=ab?a:b 求求maxmax的值的值 max的值为的值为5C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页例如:例如: a b y a b y 表达式表达式 y=a=4,b=5,a+b; y=a=4,b=5,a+b; y=(a=4,b=5,a+b); y=(a=4,b=5,a+b); y=(a=4,b=5),a+b; y=(a=4,b=
42、5),a+b; y=a=(4,b=5),a+b; y=a=(4,b=5),a+b; 4 45 54 49 94 45 59 99 94 45 59 95 55 55 55 51010C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 形式有两种:形式有两种: sizeof 变量名变量名 sizeof (类型名类型名) 结果为整型数。结果为整型数。 int a int a; float xfloat x; printf(“%d,%d”,sizeof a,sizeof x);printf(“%d,%d”,sizeof a,sizeof x); printf(“%d,%
43、d”,sizeof(int),sizeof(float); printf(“%d,%d”,sizeof(int),sizeof(float); 以上两个以上两个printfprintf语句结果均为语句结果均为 。例如例如3 3、求求字节运算符:字节运算符: sizeof 作用:求得变量或某种数据类型所需的字节数。作用:求得变量或某种数据类型所需的字节数。2 2,4 4C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 C C语言允许整型、实型、字符型数据进行混合运算。语言允许整型、实型、字符型数据进行混合运算。 有有3 3种转换方式:自动转换、赋值转换和强制转换。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年掌控中考复习配套课件:第九单元溶液
- 《老人与海》课件
- 2024年阿坝职业学院单招职业适应性测试题库及答案解析
- 单位管理制度集合大全【人力资源管理篇】
- 单位管理制度分享合集【人员管理】十篇
- 单位管理制度范文大合集【员工管理】十篇
- 单位管理制度呈现大全【人事管理篇】十篇
- 《诗五首》教案设计
- 第7单元 工业革命和国际共产主义运动的兴起(高频选择题50题)(解析版)
- UFIDAU培训课程委托代销
- TSG 51-2023 起重机械安全技术规程 含2024年第1号修改单
- 《正态分布理论及其应用研究》4200字(论文)
- GB/T 45086.1-2024车载定位系统技术要求及试验方法第1部分:卫星定位
- 浙江省杭州市钱塘区2023-2024学年四年级上学期英语期末试卷
- 1古诗文理解性默写(教师卷)
- 广东省广州市越秀区2021-2022学年九年级上学期期末道德与法治试题(含答案)
- 2024-2025学年六上科学期末综合检测卷(含答案)
- 在线教育平台合作合同助力教育公平
- 工地钢板短期出租合同模板
- 女排精神课件教学课件
- 2024年湖南省公务员考试《行测》真题及答案解析
评论
0/150
提交评论