基本数据类型与表达式ok

上传人:tian****1990 文档编号:74153488 上传时间:2019-01-27 格式:PPT 页数:34 大小:953.81KB
返回 下载 相关 举报
基本数据类型与表达式ok_第1页
第1页 / 共34页
基本数据类型与表达式ok_第2页
第2页 / 共34页
基本数据类型与表达式ok_第3页
第3页 / 共34页
基本数据类型与表达式ok_第4页
第4页 / 共34页
基本数据类型与表达式ok_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《基本数据类型与表达式ok》由会员分享,可在线阅读,更多相关《基本数据类型与表达式ok(34页珍藏版)》请在金锄头文库上搜索。

1、第2章 C语言的基本数据类型与表达式,2.1 C语言的基本数据类型 2.2 常量与变量 2.3 运算符与表达式 2.4 数据类型转换,2.1 C语言的基本数据类型 一、数据类型概述,常量:指在程序运行中,其数值不能被改变的量。 变量:指以标识符为名字,其值可以改变的量。 变量代表计算机内存中的某一存储空间,变量的类型决定了该存储空间的长度和其中存放数据的编码方式及存储格式,变量的类型也决定了该存储空间中存放数据的数据形式和取值范围。,常量和变量,二、整型 1、整型常量,(1) 十进制形式:与数学上的整数表示相同 例如: 12, -100, 0 (2) 八进制形式:在数码前加数字0 例如: 01

2、2=1*81+2*80=10(十进制) (3) 十六进制形式:在数码前加0X(数字0和字母X) 例如: 0x12=1*161+2*160=18(十进制),2、整型变量的分类:,根据数据所占的存储长度的不同分为:int、short、long 根据数据的类型又分unsigned、signed 故可组合出六种类型。,3、整型变量的值域 (P1页 表2-1),2、实型变量的分类及值域: 关键字 字节数 取值范围 精度(位) float 4 3.410-38 -3.41038 7 double 8 1.710-308 -1.710308 15,三、实型,1、常量: (1) 十进制小数形式:由数字和小数点

3、组成; 例如: 3.4, 4., .3。 (2) 指数形式:“十进制小数”+“ e(或E)”+“十进制数整数”。 例如: 12.5e-6 表示12.510-6 。,小数点不能单独出现: 0. .0 . e或E的两边必须有数,且其后面必须为整数: 6E0.2 e5 ,字符形式 功能 n 换行 t 横向跳格 b 退格 r 回车 反斜杠字符 单引号字符 ddd 8进制数表示的ASCII码对应的字符 xhh 16进制数表示的ASCII码对应的字符,四、字符类型,1、常量: (1) 用单引号括起来的一个字符;如:A、 1、?等。 (2) 用单引号括起来的由反斜杠()引导的转义字符。, a与“a”的区别。

4、,例如:字符A的ASCII码为: 65D(十进制)=41H(十六进制)=101Q(八进制) 字符A可以表示为A、x41、101。 2、字符型变量的分类: char 和 unsigned char; 3、值域 字符型可参与数学运算,也可看成一种一字节的整型变量; 每个字符型数据在内存中占一个字节; 包括ASCII字符表中的所有字符; 4、字符串常量: 是用一对双引号括起来的字符序列。 注意:每个字符串的后面都有一个0结束符。 如:“SHANGHAI”, “How are you”,一、常量与符号常量 常量是指在程序运行中,其数值不能被改变的量。 常量又可分为直接常量和符号常量。,2.2 常量与变

5、量,120 、 -100、 0 0120、 072 0xFFFF、 0x1e、0X28AF,0XED4 120L, 200L 长整型常量 3.14、 -3.1、 5.12E-6 a 、#、n、101 099、12f、 0xg 、48EA 019.5 、1e-08 实型常量只能用十进制形式表示 2.1E10.2、E-6、6.4E+4.8 “changsha“ 、“+?ab“ 、p 、ab,1、直接常量:是在程序中直接引用的数据。,请判断这些常量正确与否,2、符号常量 是用标识符来表示一个数据,在程序不能给它赋值。 定义形式: #define 标识符 常量数据 例如: #define PI 3.1

6、4159 在程序预处理时,凡是出现标识符PI的地方都将用 数据3.14159来替换。 如: 2*2.3*PI 就等价于 2*2.3*3.14159。,二、 变量 变量是指以标识符为名字,其值可以改变的量。 变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值。 在同一程序块中,变量不能被重复定义。 使用变量时必须“先声明,后使用”。,2、变量初始化 在定义变量的同时给变量一个初始值。 int a=5, b=3; int a=b=c=3; int a,b,c; a=b=c=3; ,例如: int a,b,c ; float x,y; char c1,c2; 或 int c1,c

7、2;,main( ) int x,y,z,w; /*定义x,y,z,w为整型变量*/ unsigned int k; /*定义k为无符号整型变量*/ x=10;y=-20;k=30; z=x+k;w=y+k; printf(“x+k=%d,y+k=%dn”,z,w); ,例2-1:,程序运行结果为: x+k=40,y+k=10,变量根据作用域的不同可分为局部变量和全局变量,根据存储方式的不同可分为静态存储变量和动态存储变量,这些我们将在第六章中详细介绍。,2.3 运算符与表达式,运算符:就是表示某种运算功能的符号。按操作功能运算符大致可分为:算术运算符、关系运算符、逻辑运算符、赋值运算符、条件

8、运算符、逗号运算符以及按位运算符等。 表达式:是由操作数和运算符组成的序列。 如:1+2*3-4 、 35-7 、a=b%2 在C语言中,规定了优先级(先乘除后加减)和结合规则(从左至右)。,一、 算术运算符和算术表达式,1、 运算符 + - * / % %取余:操作数只能是整数,且结果的符号与前一操作数的符号相同 5%3的值为2; -5%3的值为-2; 5%(-3)的值为2; -5%(-3)的值为-2; 12.3%3 若a%b 的结果为0,则有a能被b整除 2、算术表达式 用算术运算符和括符将操作数连接起来的式子。 优先级:() *、/、% +、- 结合性:从左至右;,float a=2.0

9、; int b =6,c =3; a*b/c -1.5 +a +fabs(-5),12.0/3,5,4.0 - 1.5,2.5 + 97(int),99.5 + 5,104.5(double),等价于:j=i;i+; 所以i的值为4,j的值为3,等价于:i+;j=i; 所以i的值为4,j的值为4,(1) i=3; j=i+; (2) i=3; j=+i;,3、自增与自减运算符 (+ 、-),+i, -i :使用之前使i的值增1或减1;,i+, i- :使用之后使i的值增1或减1;,分析下面几种情况中i与j的值:,当+、 -不与其他运算符混合使用时, +i与i+都等价于 i=i+1, -i与i-

10、都等价于 i=i-1,例:i = 2; j = -i+; 求执行完这两句后i与j的值分别是多少?,特殊的:设i=3,j=4,k=i+j, k= i= j=,结合性:自右至左。,分析:“+”与“-”是同优先级,且都高于“=” 按结合规则,等价于:j=-(i+); 结果:i的值为3,j的值为-2。,再看几个例子(先统一计算变量,下来再计算表达式): 如:设i=3,k=(i+)+(i+)+(i+) k= i=,9,6,设a=3,b=(a+)+(a+) b= a=,6,5,设a=3,b=(+a)+(a+) b= a=,8,5,设a=3,b=(a+)+(+a) b= a=,8,5,设a=3,b=(+a)

11、+(+a) b= a=,10,5,7,4,4,1、6种关系运算符:= = != 2、关系表达式:用关系运算符将表达式连接起来的式子 优先级: (= )( = != ) 结合性:自左至右; 表达式的值:若为真,则结果为1; 若为假,则结果为0。,35 值为: 32 值为: 设x=-2; -3x-1 值为: 设x=1; 2x4 值为:,二、关系运算符和关系表达式,求如下关系表达式的值:,0,0,0,1,算术运算符优先级高于关系运算符 3+(43)*4 值为 3+43*4 值为,3,1,不能用数学里习惯的关系运算符连用表示区间关系!,2、逻辑表达式:用逻辑运算符将表达式连接起来的式子 优先级: !

12、& | 结合性:自左至右; 表达式的值:若为真,则结果为1; 若为假,则结果为0。,三、逻辑运算符和逻辑表达式,1、3种逻辑运算符: & | !,参与逻辑运算的操作数叫逻辑量。 逻辑量可以是整型、实型、字符型和指针类型, 其中,0,0.0,0,NULL代表假,其余逻辑量代表真。,int a=5; float b=3.5; !a ( ) !(a 0) ( ) (a 0) ( ),0,1,1,0,0,0,1,1,0,0,0,1,例如表达式运算如下:,混合优先级 逻辑运算符! 高 算术运算符 关系运算符 逻辑运算符&和| 赋值运算符 低,4 - 0,1 & 2,8 4,1,0,1,5 3 & 2 |

13、 8 4 - !5,例如: (1)a = 0; b = 1; c = a+ 执行后: a为 ,b为 ,c为 。,逻辑或优化和逻辑与优化,在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。,1,1,0,(2)a = 1; b = 1; c=0; d = -a b- (c = b+3 ); 执行后: a为 ,b为 ,c为 ,d为 。,0,0,0,1,例如: (1) n是小于m的偶数: (2)year是闰年: (能被4整除但不能被100整除,或能被400整除),逻辑表达式一般用于控制语句中的条件:,n m & n % 2 = 0

14、,year % 4 = 0 & year % 100 != 0 | year % 400 = 0,例如:(1) x=(y=12)/4 (2) x=y=12/4 (3) x=(y=12/4) (4)(x=y)=12/4,四、赋值运算符和赋值表达式,1、赋值运算符 = (执行功能:把=右边的表达式的值,存入=左边的变量) 3=2+1 a=a+2,2、赋值表达式:用赋值运算符将变量和表达式连接起来的式子 形式: = 求值规则: 将“=”右边表达式的值赋给左边的变量。 优先级: !算术关系&|赋值 结合性:自右至左; 表达式的值:被赋值变量的值。,y值为12,x值为3,表达式的值为3,y值为3,x值为

15、3,表达式的值为3,y值为3,x值为3,表达式的值为3, 不能给表达式赋值,练习:设a=12,计算表达式a+=a-=a*12,3、复合赋值运算符 *=、/=、 %=、 +=、 -=, =, &=、 =、 = 复合运算符是一个运算符,但功能上,是两个运算符功能的组合。,例如: a+=b 相当于 a=a+b a*=b 相当于 a=a*b,注意:a*=b+c 相当于 a=a*(b+c) 而不是 a=a*b+c, 优先级:与 = 是同一优先级。 结合性:自右至左; 表达式的值:被赋值变量的值。,-264,求值规则: 求解表达式1的值: 若为真(非0),求解表达式2,并把表达式2的值作为整个条件表达式的值; 若为假(0),求解表达式3,并把表达式3的值作为整个条件表达式的值,四、其它运

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号