版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 根本数据类型、运算符和表达式2.1 C2.1 C言语的数据类型言语的数据类型2.1.1 2.1.1 概述概述 程序设计主要处理两个问题:一个是动程序设计主要处理两个问题:一个是动作,即怎样作,即怎样做的问题,这由语句来实现;另一个是动作做的问题,这由语句来实现;另一个是动作的对象,即数的对象,即数据的存放问题,这由数据类型来决议。据的存放问题,这由数据类型来决议。 世界上著名的计算机科学家沃斯世界上著名的计算机科学家沃斯N.WirthN.Wirth提出这提出这样一个公式:程序样一个公式:程序= =数据构造数据构造+ +算法算法为什么要规定数据类型呢?为什么要规定数据类型呢? 不同数据类
2、型的数据在内存中占据不同长度不同数据类型的数据在内存中占据不同长度的存储区的存储区(2) (2) 一种数据类型对应着一个值的范围。一种数据类型对应着一个值的范围。 (3) (3) 一种数据类型对应着一个运算集。一种数据类型对应着一个运算集。 2.1.2 2.1.2 数据类型数据类型数据类型数据类型 根本类型根本类型整型有符号、无符号的短、基、整型有符号、无符号的短、基、长长字符型字符型单精度单精度双精度双精度构造类型构造类型指针类型指针类型空类型空类型数组类型数组类型构造体类型构造体类型结合体类型结合体类型实型实型(浮点型浮点型)枚举类型枚举类型12.2 2.2 常量常量 (2) (2)常量:
3、程序运转过程中其值不发生变化的量。常量:程序运转过程中其值不发生变化的量。三类常量:数值、字符和字符串。三类常量:数值、字符和字符串。2.2.1 2.2.1 数值常量数值常量一、整数常量的表示一、整数常量的表示1 1、计数制的通用表示方法、计数制的通用表示方法A=an-1A=an-1bn-1bn-1 an-2 an-2bn-2 bn-2 . . a1a1b1 b1 a0 a0b0 b0 a-1 a-1b-1 b-1 a-2 a-2b-2 b-2 . . a- a-m mb-m b-m 基数基数b b: :所含数码的个数所含数码的个数权权bxbx:阐明数码所在的位置:阐明数码所在的位置数码:数码
4、:0 b-10 b-1整数常量整数常量实数常量实数常量数值常量数值常量二进制数:二进制数:基数:基数:2权:权:2x数码:数码:0 1例如:例如:1010.11=123 022121 020 12-1 12-2 =10.75二进制数权值:二进制数权值:128 64 32 16 8 4 2 1注:计算机中运用二进制编码表示数据,且只存在二进制。注:计算机中运用二进制编码表示数据,且只存在二进制。2、十进制表示、十进制表示基数:基数:10权:权:10 x数码:数码:0 9例如例如:123.45=11022101 3100410-1510-2 3、八进制表示、八进制表示基数:基数:8权:权:8x数码
5、:数码:0 7例如:例如:023=2813 80 =19注:八进制是二进制的短格式计数法,一位对三位。注:八进制是二进制的短格式计数法,一位对三位。例如:例如:023对应的二进制数为对应的二进制数为010 011注:注:C言语中八进制数第一个数字必需为言语中八进制数第一个数字必需为0八进制标志八进制标志例如:例如:0213-030+056-01234、十六进制表示、十六进制表示基数:基数:16权:权:16X数码:数码:0 9,A,B,C,D,E,F例如:例如:0XBF3C=1116315162316112160 =48956 注:十六进制是二进制的短格式计数法,一位对四位。注:十六进制是二进制
6、的短格式计数法,一位对四位。例如例如: 0XBF3C对应的二进制数为对应的二进制数为1011 1111 0011 1100注:十六进制数前两个数字必需为注:十六进制数前两个数字必需为0X十六进制标志十六进制标志例如:例如:0X213-0X30 +0X56 -0X12A二、整数常量的几种表示方式之间的转换二、整数常量的几种表示方式之间的转换十 进 制八 进 制十 六 进 制红色:延续除基数,取余数直到商为零浅蓝:按权值位展开。黄色:借助二进制数转换。1、十进制变八进制或十六进制、十进制变八进制或十六进制(红色红色)(1) 将变为八进制数将变为八进制数0213 8 8 17 余余3 8 2 余余1
7、 0 余余2将将3158变为十六进制数变为十六进制数0XC562、八进制或十六进制变十进制、八进制或十六进制变十进制(浅蓝浅蓝)(1) 将将0213变为十进制数变为十进制数 0213=282+181+380=(2) 将将0XC56变为十进制数变为十进制数3158 3、八进制与十六进制变换、八进制与十六进制变换(黄色黄色)(1) 将将0X1A3变成八进制数变成八进制数0643 P19(2) 将将0334变为十六进制数变为十六进制数0XDC P19三、整数常量的取值范围三、整数常量的取值范围短整型数:短整型数:根本整型数:根本整型数:长整型数:长整型数:四、溢出四、溢出 整数的值超出了所能表示的范
8、围整数的值超出了所能表示的范围有符号短整型有符号短整型16位:位:-32768 +32767无符号短整型无符号短整型16位位 :0 65535有符号整型有符号整型16位:位:-32768 +32767无符号整型无符号整型16位位 :0 65535有符号长整型有符号长整型32位:位:-2147483648 +2147483647无符号长整型无符号长整型32位:位:0 4294967295五、实数五、实数 实数只运用十进制方式表示实数只运用十进制方式表示 两种表示方法:小数方式与指数方式两种表示方法:小数方式与指数方式1、小数方式:由整数部分、小数点、小数部分组成、小数方式:由整数部分、小数点、小
9、数部分组成 2.718 0.123 123.0 .123 123. 0.02、指数方式:、指数方式:+整数部分整数部分.小数部分小数部分 +e前部分称为尾数,表示实数的有效值,符号表示整体的前部分称为尾数,表示实数的有效值,符号表示整体的正负。正负。e后部分称为阶码,表示小数点在尾数根底上的挪动位数,后部分称为阶码,表示小数点在尾数根底上的挪动位数,符号表示挪动的方向符号表示挪动的方向 例如:例如:-3.14e2, 3.14e-2实数的分类实数的分类单精度单精度, 例如:例如:3.1415f双精度双精度, 例如:例如:3.1415长双精度长双精度, 例如:例如:3.1415L 实数取其值的绝对
10、值范围。当实数超出它的类型所能表示的范围时产生溢出。假照实数的绝对值小于所能表示的最小值那么产生下溢, 例如:实数1.7e-309和-1.7e-309均产生下溢, 由于|1.7e-309|1.7e+308|。上溢时将产生错误的结果。 实数又分为单精度float、双精度double和长双精度long double三类。 实数的缺省类型为双精度数double型; 在实数后面加后缀字母f或F表示单精度数float型,例如3.14159F; 在实数后面加后缀字母l或L表示长双精度数long double型,例如1.7e+309L. 单精度实数具有67位十进制有效数字; 双精度实数具有1516位十进制有
11、效数字; 长双精度数具有1819位十进制有效数字。 2.2.2 字符常量 一对单引号括起来的单一字符。例如:A,2,+ 字符常量在内存中占一个字节存放,存放的值为该字符的ASCII码值。美国规范信息交换码ASCII码American Standard Code for Information Interchange行行 列列 000 001 010 011 100 101 110 111 0000 N U L D L E SP 0 P 、 p 0001 SO H D C 1 ! 1 A Q a q 0010 ST X D C 2 ” 2 B R b r 0011 E T X D C 3 # 3
12、 C S c s 0100 E O T D C 4 $ 4 D T d t 0101 E N Q N A K % 5 E U e u 0110 A C K SY N & 6 F V f v 0111 B E L E T B 7 G W g w 1000 B S C A N ( 8 H X h x 1001 H T E M ) 9 I Y i y 1010 L F SU B * : J Z j z 1011 V T E SC + ; K k 1100 FF FS , L l 1101 C R G S = M m 1110 SO R S N n 1111 SI U S / ? O _ o D E
13、L 前前3232个个,0 x00 x1f,0 x00 x1f为为控制字符控制字符 是空格,编码为是空格,编码为OX20OX203 3编码为编码为OX33OX339 9编码为编码为OX39OX39A A编码为编码为OX41OX41Z Z编码为编码为OX5AOX5Aa a编码为编码为OX61OX61z z编码为编码为OX7AOX7A2.2.3 2.2.3 本义字符本义字符用于表示一些没法表示的字符,例如控制字符、用于表示一些没法表示的字符,例如控制字符、单引号等单引号等两种表示方式:两种表示方式:1 1、反斜杠后面跟一个字符、反斜杠后面跟一个字符例如:例如: 0 0 空字符空字符n n 换行换行
14、t t 横横向跳格向跳格 b b 退格退格 r r 回车回车 字符字符 单引号单引号 双引双引号号 2 2、反斜杠后面跟一个字符的、反斜杠后面跟一个字符的ASCIIASCII码两位十六码两位十六进制数进制数 xhh xhh或三位八进制数或三位八进制数dddddd例如:换行字符可以表示为例如:换行字符可以表示为: n : n 、 012 012 、12 12 、 XA XA2.2.4 2.2.4 字符串常量字符串常量 一对双引号括起来的零个或多个的字符一对双引号括起来的零个或多个的字符序列,字符序序列,字符序列中的字符个数称为字符串的长度。列中的字符个数称为字符串的长度。 例如:例如: this
15、 is a stringn this is a stringn this is acprogram this is acprogram 长度为长度为0 0的字符串即一个字符都没有的的字符串即一个字符都没有的字符串称字符串称为空串,表示为为空串,表示为 一对紧连的双引号。一对紧连的双引号。 在存储字符串常量时,由系统在字符串的在存储字符串常量时,由系统在字符串的末尾自动加末尾自动加个空字符个空字符00作为字符串的终了标志作为字符串的终了标志 例如:例如: 有一个字符串有一个字符串“CHINACHINA ,它在内,它在内存中的实践存中的实践存储如下所示。存储如下所示。 字符串假设有字符串假设有n
16、n个字符,那么占个字符,那么占用用n+1n+1个内个内存空间。存空间。CHINA0 字符串必需写成一行,如下写法是错误的: printf(Hello, how are you?); 字符串常数必需写成一行。假设一行写不下,那么有两种方法可以将行扩展到下一行 。 printf(hello, how are you?); 两个字符串中间只需空白字符(分隔符),以为这是一个字符串。2、续行符 printf(hello, how are you?);2.2.5 符号常量 将一个常量定义为一个标识符,这个标识符可以替代对应的常量,称为符号常量。 例如:#define PI 3.1415926 符号常量名
17、运用大写字母运用符号常量的优点:运用符号常量的优点:1、输入很长的常量可以防止出错,简化输入。、输入很长的常量可以防止出错,简化输入。2、含义直观。、含义直观。3、修正容易、修正容易例如:计算一样半径下的圆周长、圆面积和圆球体积。例如:计算一样半径下的圆周长、圆面积和圆球体积。 #define PI 3.14159main() main()float l,s,v,r; float l,s,v,r; printf(input r:); printf(input r:); scanf(%f,&r); scanf(%f,&r); l=2*3.14159*r; l=2*PI*r; s=3.14159*
18、r*r; s=PI*r*r; v=4/3*(3.14159*r*r*r); v=4/3*(PI*r*r*r);printf(l=%f,s=%f,v=%fn,l,s,v); printf(l=%f,s=%f,v=%fn,l,s,v); 2.3 2.3 变量及数据类型变量及数据类型2.3.1 2.3.1 变量和变量的地址变量和变量的地址变量:程序运转中可以改动的量。变量:程序运转中可以改动的量。 本质是内存中的一块存储区,本质是内存中的一块存储区,变量名:是这块存储区的首地址的符号标识变量名:是这块存储区的首地址的符号标识经过变量名经过变量名 找到这块存储区在内存中找到这块存储区在内存中的位置,找
19、到该块存储的位置,找到该块存储 区内存储的内容区内存储的内容 注:运用变量名表示存储注:运用变量名表示存储的数据。的数据。 运用运用& &变量名表示地变量名表示地址。址。变量类型:阐明这块存储区的大小,以及施变量类型:阐明这块存储区的大小,以及施加在这块存储加在这块存储 区内存储的内容上的区内存储的内容上的操作范围操作范围 在程序运转时,变量的值存储在一定的存储单元中,为此,须弄清楚变量名和变量值这两个不同的概念,如左图所示。存储某变量值的存储单元的首地址称为变量的地址。如右图所示的单精度实型变量average,是具有4个字节的存储单元,它们分别是单元40004003,而4000就称为变量av
20、erage的首地址。在C言语中,变量的地址用变量名前加&符号表示,即&average,或者说&average的值就是4000。 变量名 float average &average4000 sum 变量值 4001 4002 4003 存储单元 302.3.2 2.3.2 根本数据类型变量根本数据类型变量一、整型变量一、整型变量 包括根本整型、短整型和长整型。包括根本整型、短整型和长整型。ANSI ANSI C C规定规定longlong不短于不短于intint,shortshort不长于不长于intint。详细实现取决于计。详细实现取决于计算机系统。算机系统。1 1、整型变量的类型标识符、整
21、型变量的类型标识符 有符号短整型:有符号短整型: signed short int signed short int 无符号短整型:无符号短整型: unsigned short int unsigned short int 有符号根本整型有符号根本整型: signed int : signed int 无符号根本整型无符号根本整型: unsigned int: unsigned int 有符号长整型:有符号长整型: signed long int signed long int 无符号长整型:无符号长整型: unsigned long int unsigned long int 例如:例如:i
22、nt a; int a; 取值范围为取值范围为- -32768 3276732768 32767 unsigned int b; unsigned int b; 取值范围为取值范围为0 0 65535 65535二、计算机中数的表示二、计算机中数的表示无符号数表示无符号数表示 00000000=00000000000000000=0 11111111=2551111111111111111=65535 表示有符号数表示有符号数加正负号加正负号用用0和和1代表正负代表正负用某用某种编码方式使符号位也直接参与运算种编码方式使符号位也直接参与运算,不用特殊处置并不用特殊处置并得到正确结果得到正确结果
23、 机器数:符号数值化了的数最高位为符号位,机器数:符号数值化了的数最高位为符号位,1表示负表示负号,号,0表示正号,其他为真值表示正号,其他为真值原码表示法:符号原码表示法:符号 + 绝对值绝对值例如:例如: +3原码原码 = 0 0000011 = 03H -3原码原码 = 1 0000011 = 83H +0原码原码 = 0 0000000 = 00H -0原码原码 = 1 0000000 = 80H八位十六位补码表示法:计算机中有符号数用补码表示补码表示法:计算机中有符号数用补码表示正数的补码正数的补码= =正数的原码正数的原码负数的补码负数的补码= =该负数相对应的正数的补码按位取反再
24、加一该负数相对应的正数的补码按位取反再加一例如:例如:-46-46补码补码 = = ? 46 46补码补码 = 0010 1110= 0010 1110 1101 0001 1101 0001按位取反按位取反 1101 0010 = D2H1101 0010 = D2H加一加一n n位补码的表数范围:位补码的表数范围: - 2n-1 - 2n-1 N N 2n-1-1 2n-1-1n=8 -128 n=8 -128 N N 127 127n=16 -32768 n=16 -32768 N N 32767 327670 0- -0 0 x x0 01 12 27 7- -0 0 x x7 7f
25、f- -1 12 28 8 - - - - -0 0 x x8 80 0- -1 1- -0 0 x x1 1正正负负增增增增三、实型变量三、实型变量 实型变量为:单精度型、双精度型和长双精度型。实型变量为:单精度型、双精度型和长双精度型。 单精度:单精度:float四个字节存储四个字节存储 双精度:双精度:double 八个字节存储八个字节存储 长双精度:长双精度:long double字节数字节数8,取决于计算机,取决于计算机系统系统取值范围:取值范围:单精度型单精度型:有有67位有效数字,范围约为位有效数字,范围约为|3.4e-38|3.4e+38|双精度型双精度型:有有1516位有效数
26、字位有效数字,范围约为范围约为| 1.7e-308|1.7e+308|长双精度型:如长双精度型:如Turbo C中的长双精度型变量的值在内存中的长双精度型变量的值在内存 中占中占10个字节。个字节。 四、字符变量四、字符变量 用于存放字符常量,存放的是字符的用于存放字符常量,存放的是字符的ASCII码。类型码。类型标识符为标识符为char。2.3.3 2.3.3 变量阐明变量阐明变量遵照先定义变量遵照先定义( (阐明阐明) )后运用的原那么,变量阐后运用的原那么,变量阐明的目的:明的目的: 在编译时便于发现未经定义的变量名。在编译时便于发现未经定义的变量名。(2)(2)根据类型信息来检查对变量
27、施加的运算能否合根据类型信息来检查对变量施加的运算能否合理。理。(3)(3)编译时根据类型为变量分配固定长度的存储单编译时根据类型为变量分配固定长度的存储单元,并元,并 确定数据在内存中的表示方法。确定数据在内存中的表示方法。 变量阐明方式变量阐明方式: : 存储类别存储类别 存储类别决议变量的存储位置,同时也决议存储类别决议变量的存储位置,同时也决议变量的生存变量的生存期和作用域。期和作用域。 数据类型用于指明变量名表中所列变量的数数据类型用于指明变量名表中所列变量的数据类型。据类型。 例如:例如:int number,score;int number,score; unsigned lon
28、g distance; unsigned long distance;【例【例2.1】 不同整型变量的混合运算。不同整型变量的混合运算。main()int a,b,c,d,x,y;unsigned int e;a=20; b=-15;c=50; d=-10;e=25;x=a+b+e; y=c+d+e;printf(na+b+e=%d,c+d+e=%dn,x,y);运转结果为:运转结果为: a+b+e=30,c+d+e=65 【例【例2.2】 整型数据的溢出问题。整型数据的溢出问题。main()int a,x; unsigned int b,y; a=3;b=65532; x=a+b;y=a+b
29、; printf(x=%d,y=%un,x,y);运转结果为:运转结果为:x=-1,y=65535 0000000000000011 3 a (+) 1111111111111100 65532 b 1111111111111111【例【例2.3】 字符型数据和整型数的混合运算。字符型数据和整型数的混合运算。main()char c1,c2,c3; c1=A+3; c2=65; c3=A; printf(%c,%c,%cn,c1,c2,c3); printf(%d,%d,%dn,c1,c2,c3);运转结果如下:运转结果如下:D,A,A68,65,652.3.4 2.3.4 变量的初始化变量的
30、初始化 变量阐明只是指定了变量的名字和数据类型,变量阐明只是指定了变量的名字和数据类型,并没并没有给它们赋初值。但程序中有些变量在运用前必有给它们赋初值。但程序中有些变量在运用前必需赋初值需赋初值例如例如, ,作为计数器作为计数器(n=n+1)(n=n+1)运用的整型变量运用的整型变量n n通常要通常要置初值置初值0 0 在在C C言语程序中,没有赋初值的变量并不意味言语程序中,没有赋初值的变量并不意味着该变着该变量中就没有数值,由于该变量所标识的存储单元量中就没有数值,由于该变量所标识的存储单元中还保管中还保管着以前运用该单元时留下的内容,只是尚未对该着以前运用该单元时留下的内容,只是尚未对
31、该变量定义变量定义特定值。于是,直接援用该变量就会产生莫名其特定值。于是,直接援用该变量就会产生莫名其妙的结果。妙的结果。 没有赋值的变量内存单元会有随机值存在没有赋值的变量内存单元会有随机值存在变量赋初值的普通方式:变量赋初值的普通方式: = ,.例如:例如:int n=0,s=1;int n=0,s=1; double price=35.5 double price=35.5; int x,y=10,z; int x,y=10,z; 2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 概述概述运算符:运算符:C C言语中用于描画数据运算的特殊符言语中用于描画数据运算的特殊符
32、号。号。操作数:运算符的运算对象常量、变量、操作数:运算符的运算对象常量、变量、函数等。函数等。表达式:用运算符将表达式:用运算符将C C言语的各种运算对象衔言语的各种运算对象衔接起来,组成符合接起来,组成符合C C语语 言语法要求的式子一个常量或变言语法要求的式子一个常量或变量也可称为表达式。量也可称为表达式。目:对一个运算符而言,参与运算的操作数目:对一个运算符而言,参与运算的操作数的个数单、双、三的个数单、双、三例如例如:(a+b):(a+b)* *sin(x)+2sin(x)+2优先级:运算符的优先级。规定表达式中不优先级:运算符的优先级。规定表达式中不同运算符相邻出现时,同运算符相邻
33、出现时, 运算符的运算符的计算顺序。优先级高的运算符先进展计算。计算顺序。优先级高的运算符先进展计算。结合性:结合性:C C言语特有的、用来规定同样优先级言语特有的、用来规定同样优先级的运算符相邻出现时的运算符相邻出现时 表达式的计算方式表达式的计算方式计算方向。计算方向。例如例如:a+b:a+b* *c-d (a+(bc-d (a+(b* *c)-d c)-d -i+ -(i+) -i+ -(i+) 注注: :括号可以用来改动表达式的优先级和结合括号可以用来改动表达式的优先级和结合方式方式2.4.2 2.4.2 算术运算符和算术表达式算术运算符和算术表达式1. 1. 根本算术运算符根本算术运
34、算符 + + 加法或正值运算符加法或正值运算符 - - 减法或负值运算符减法或负值运算符 * * 乘法运算符乘法运算符 / / 除法运算符除法运算符 % % 求余数运算符求余数运算符 1 1整数除法和实数除法整数除法和实数除法整数除:两个操作数全是整数,商为整数,小数整数除:两个操作数全是整数,商为整数,小数部分被舍弃。部分被舍弃。例如:例如:5/2 25/2 2-10/3 -3-10/3 -3实数除:两个操作数只需有一个是实数,商为实实数除:两个操作数只需有一个是实数,商为实数。数。例如:例如:3.0/5.0 0.63.0/5.0 0.63/5.0 0.63/5.0 0.62 2关于求余数运
35、算关于求余数运算两个操作数必需全为整数,结果为整数,符号与两个操作数必需全为整数,结果为整数,符号与被除数一样被除数一样例如:例如:53%7 453%7 453%-7 453%-7 4 - -53%-7 -453%-7 -43 3混合运算混合运算运算符两侧的数据类型可以不同,系统先将两个运算对象转换成运算符两侧的数据类型可以不同,系统先将两个运算对象转换成一样的数据类型,再进展实践计算。这种由混合运算引起的类型一样的数据类型,再进展实践计算。这种由混合运算引起的类型转换是自动进展的。转换是自动进展的。例如:例如:a a+2.718+2.718* *b b+10-5%2+10-5%2* *(a+
36、b) /(a+b) /* *设设a a和和b b是实型变量是实型变量* */ /转换原那么:表示范围小的类型转换为表示范围大的类型转换原那么:表示范围小的类型转换为表示范围大的类型2. 2. 自增、自减运算符自增、自减运算符 “+和和“-功能:将一个变量加功能:将一个变量加1 1或减或减1,1,常用来修正计数次数、下标或指针。常用来修正计数次数、下标或指针。 i+ i+ +i +i i- i- -i -i例如:例如:int x, a=5;int x, a=5;x=a+ x=a+ x=a, a=a+1 x=a, a=a+1 x=a- x=a- x=a, a=a-1 x=a, a=a-1x=+a
37、x=+a a=a+1, x=a a=a+1, x=a x=-a x=-a a=a-1, x=a a=a-1, x=a 1 1操作数必需是变量操作数必需是变量“+和和 “-运算符的操作数只能是运算符的操作数只能是变变 量,而不能是常量或表达式,例如:量,而不能是常量或表达式,例如: 25+ 25+/ /* *是不合法的是不合法的* */ / (i+j)+ / (i+j)+ /* *是不合法的是不合法的* */ /2单目运算符,优先级与取负数运算符“ - 一样,结合方向是 从右至左。例如:int i=4; printf(“%d,-i+); 输出-4,i最终等于5。相当于printf(“%d,-(i
38、+);留意:1优先级和结合性+、-、- *、/、% +、- 单目运算符+、-和-是从右至左结合的, +、-、*、/和%是从左至右结合的。2书写表达式要运用括号使表述明晰例如:i+j写成i+)+j2.4.3 2.4.3 赋值运算符和赋值表达式赋值运算符和赋值表达式赋值:把表达式的值存入变量所对应的存储空间赋值:把表达式的值存入变量所对应的存储空间1 1、简单赋值运算符、简单赋值运算符 “= =格式:格式: 变量名变量名= = 表达式表达式 * *假设假设“= =两边的类型不一致,系统会将右边两边的类型不一致,系统会将右边的数据转换为左边的数据转换为左边 变量的类型截取或扩展。变量的类型截取或扩展
39、。例如:例如:int i,j;int i,j;double d=2.6;double d=2.6;char c1=char c1=a a,c2;,c2;j=c1;j=c1;c2=c2=102102; ;i=d+3;i=d+3;* *结合性为从右至左。结合性为从右至左。例如:例如:x=y=5 x=y=5 x=(y=5) x=(y=5)2 2、算术复合赋值运算符、算术复合赋值运算符 (3) (3) +=+=、 -= -=、 * *= =、 /= /=、 %= %=、 = =、&=&=、=、|=|=变量名变量名 op= op= 表达式表达式 变量名变量名 = =变量名变量名 op ( op (表达式
40、表达式) )例如:例如:x+=2; x+=2; x=x+2; x=x+2; x x* *=y+1;=y+1; x=x x=x* *(y+1);(y+1);a+=b+=ca+=b+=c* *c; c; a=a+(b=b+c a=a+(b=b+c* *c);c);2.4.4 2.4.4 关系运算符和关系表达式关系运算符和关系表达式关系运算:对两个操作数进展比较的运算,由关系运算关系运算:对两个操作数进展比较的运算,由关系运算 符实现。符实现。 大于大于 = = 大于等于大于等于 小于小于 = = = c+da+bc+dxy!=zxy!=za=xyza=xyz例如:例如:int x=2,y=3;in
41、t x=2,y=3;求求z1z1和和z2z2的值的值z1=0=x=9 z1=0=x=9 z2=3-1!=x+1=y+2 z2=3-1!=x+1(c+d)(xy)!=za=(xy)z)z1=(0=x)=9)z2=(3-1)!=(x+1)y&a=a&c=z d9留意:*在计算逻辑表达式时,并不是一切的表达式都要被求解。 逻辑与:假设第一个操作数被断定为“假,系统不再断定或 求解第二操作数。 逻辑或:假设第一个操作数被断定为“真,系统不再断定或 求解第二操作数。例如:假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,那么求解表达式(x=n1n2)&(y=n3n4)后x和y的值*条件
42、或逻辑表达式用整数“表示结果“逻辑真、用“表示 结果“逻辑假。*在判别一个数据的“真或“假时,却以和非为根据:假设 为,那么断定为“逻辑假;假设为非,那么断定为“逻辑真例如:例如:x=10、y=5、z=a求以下表达式的值求以下表达式的值!xy&z!x|010&0|32.4.6 条件运算符条件运算符(1) 格式:格式: 表达式表达式1?表达式?表达式2:表达式:表达式3(2) 运算规那么:运算规那么:假设假设“表达式表达式1的值为非的值为非0(即逻辑真即逻辑真), 那么运算结果等于那么运算结果等于“表达表达式式2的值;否那么,运算结果等于的值;否那么,运算结果等于“表达式表达式3的值的值(3) 优先级与结合性优先级与结合性仅高于赋值运算符、逗号运算符,右结合性仅高于赋值运算符、逗号运算符,右结合性例如:从键盘上输入一个字符,假设它是大写字母,那么把 它转换成小写字母输出;否那么,直接输出。main() char ch; printf(Input a character: ); scanf(%c,&ch); ch=(ch=A&ch0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西九江市第十一中学2025-2026学年下学期初三道德与法治第一次学情自测(含解析)
- 2022年河南工勤职业道德考试一次拿证必刷题库附完整答案
- 2024年大一思政备考必刷历年真题+2024新题带答案
- 2026液碱新员工入职安全培训试题及标准解析答案
- 2023年诸暨书记员考试题库及答案
- 2020三级田径裁判考试大纲对应练习题及参考答案
- 2023营养学会考试往届高分学员同款模拟题及答案
- 黑龙江哈尔滨市第三中学2025-2026学年度下学期高二学年生物限时训练(含解析)
- 租摊位协议书合同模板
- 放射科放射性污染事故处理流程
- 贵州省六盘水市2025-2026学年九年级上学期期末语文试题(含答案)
- 一年级数学5以内加减法计算专项练习题(每日一练共42份)
- 2026年山西云时代技术有限公司校园招聘笔试备考题库及答案解析
- 数字孪生智慧管网监测系统构建课题申报书
- 统编版(新版)道德与法治八年级下册课件13.1全面依法治国的指导思想
- 汽车驾驶员技师论文
- 2025年三季度云南航空产业投资集团招聘(云南云航投现代物流有限公司岗位)考试笔试历年常考点试题专练附带答案详解2套试卷
- 3.长方体和正方体(单元测试)2025-2026学年五年级数学下册人教版(含答案)
- 八大特殊作业安全管理流程图(可编辑)
- 初中劳动教育试题及答案
- 清明文明安全祭扫课件
评论
0/150
提交评论