6_linux+c视频课程ppt之基本数据类型与表达式_第1页
6_linux+c视频课程ppt之基本数据类型与表达式_第2页
6_linux+c视频课程ppt之基本数据类型与表达式_第3页
6_linux+c视频课程ppt之基本数据类型与表达式_第4页
6_linux+c视频课程ppt之基本数据类型与表达式_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,基本数据类型与表达式,主讲:刘晓涛,C语言的语法基础C语言的基本数据类型常量和变量运算符与表达式数据类型转换,议程,3,语言的语法基础,(4)特殊符号:通常由12个符号组成,主要用 来表示运算符。,C语言字符集,C语言的基本符号可分为4类:,(1)英文字母:大小写各26个,共计52个;,(2)阿拉伯数:0、1、2、3、4、5、6、7、8、9 共10个数字;,(3)下划线:_;,4,算术运算符:+ - * / % + -,关系运算符: = ,条件运算符: ?: 和赋值运算符:=,其他分隔符: ( ) . , ;,5,标识符,概念:就是用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列。,(1)标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,(2)大小写字母敏感。因此,a和A,I和i,Sum和sum,分别是两个不同的标识符(3)用户自定义的标识符不能与关键字同名,6,关键字,概念:就是对编译器具有特定含义的标识符,用户不能用来作自定义标识符。,C语言中的关键字较少,由ANSI标准推荐的关键字有32个,(1)与数据类型有关的(14):char int float double signed unsigned short long void struct union typedef enum sizeof,7,(3)与程序控制结构有关的(12): do while for if else switch case default goto continue break return无须记忆,船到桥头自然直,(2)与存储类别有关的: auto extern register static,8,基本数据类型,5,整型数据,值为5,算术运算,0.5,实型数据,值为0.5,算术运算,原始数据,相同的特性,同一数据类型,数据分类、处理,9,C语言的数据类型,10,常量和变量,一、常量,1.直接常量:是在程序中直接引用的数据。,分为:整型、实型、字符型、字符串,以数据的原形出现!,11,(1)整型,三种表现形式:,十进制形式:与数学上的整数表示相同 例如: 12, -100, 0,八进制形式:在数码前加数字0例如: 012=10(十进制),十六进制形式:在数码前加0X(数字0和字母X,大小写均可)。 例如: 0x12=18(十进制),12,十六进制的数码除了数字0-9外, 还使用英文字母a-f (或A-F)表示10-15。 如:0x1e、0Xabcdef、0x1000 但:0X2defg、0x100L都是错误的。,注意事项:,八进制的数码范围为0-7; 则:018、091、0A2 都是错误的数据表示方法,13,(2)实型,二种表现形式:,十进制形式:由数字和小数点组成;,指数形式:由“十进制小数” + “ e(或E)” + “十进制数整数” 三部分组成。,例如: 3.4 4. .3,例如: 12.5e-6 表示12.510-6,十进制小数,e(或E),十进制数整数,14,注意事项:,小数点不能单独出现;,e或E的两边必须有数,且其后面必须为整数;,如:0. = .0 = 0 = 0.0 .,如: 6E0.2 e5 6E,15,(3)字符型,二种表现形式:,用单引号括起来的一个字符;,用单引号括起来的由反斜杠()引导的转义字符。,如:A、 1、? 等。,如: n 101 x41,在统计字符个数时,只能记为一个字符,只能是英文的单引号,16,转义字符表,字符形式,功能,n,换行,t 、V,横向跳格、,b 、r,坚向跳格,退格、,f,回车,、,8进制数表示的ASCII码对应的字符,反斜杠、单引号、双引号,ddd,换页,xhh,16进制数表示的ASCII码对应的字符,17,一个字符的多种表示方法:,65D(十进制)=41H(十六进制)=101Q(八进制)字符A可以表示为A、x41、65、0x41、0101。,要避免的错误:,表示单引号: 表示双引号:表示斜线: ,18,字符的值域:,即字符的取值范围。,0-127或0-255,ASCII字符表中的所有字符,每个字符型数据在内存中占一个字节,包括可显示字符和非显示字符。,19,2.符号常量:,特点:在程序中不能给它赋值。,概念:是用标识符来表示一个数据。,定义形式:,#define 标识符 常量数据,例如: #define PI 3.14159,在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。,如:2*2.3*PI 就等价于 2*2.3*3.14159。,20,二、变量,变量是指在程序运行中, 其值可以被改变的量。,基本概念:,变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值。,在同一程序块中,每个变量都有唯一的名字,不能被重复定义。,使用变量时必须“先定义,后使用”。,21,int a,b,c ; float x,y; char c1,c2; 或 int c1,c2;,自己设定,满足标识符的规定。,如:int,float,char,;不可省,1.定义形式:,类型标识符 变量名1 ,变量名2,变量名3,.;,例如:,22,2.整型变量,(1)整型变量的分类,基本型,以int表示。,短整型,以short int表示,或以short表示。,长整型,以long int表示,或以long表示。,无符号型,其中无符号型又分为无符号整型,无符号短整型和无符号长整型,分别以unsigned int unsigned shortunsigned long表示。,23,int x;long y;,2000,2001,2002,2005,x,y,内存,内存地址,2003,2004,24,(2)整型常量的类型 在将一个整型常量赋给一个整型变量时如何进行类型匹配?,其值在-32768 - +32767范围内,认为它是 int型,它可以赋值给int型和long int型变量。,其值在-2147483648 - +2147483647范围内,则认为它是long int型,可以将它赋值给一个long int型变量,短整型常量:,长整型常量:,25,如果某一计算机系统的C版本确定的short int 与int型数据在内存中占据的长度相同,则它的表示范围与int 型相同。因此一个int型的常量也同时是一个short int型常量,可以赋值给int型或short int型变量。,常量中无unsigned型.,但一个非负值的整常量可以赋值给unsigned型整常量,只要它的范围不超过变量的表示范围即可。,26,数据后加一个字母1或L,则认为是long int型常量.,长整型常量的表示:,27,main()int x; x =10*9*8*7*6*5*4*3*2*1; printf(%d,x);Int换成long int ,%d换成%ld,结果如何?,Example: 看看下面程序的输出是什么?,28,3、实型变量的分类,(1)实型变量的分类,单精度(float)型,双精度(double)型,29,(2)实例,2000,2003,2004,2011,x,y,内存,内存地址,30,例如: char c; c= a; c= 034; c= n; c= x65; c=65;c=0101;c=0x41;,4.字符变量,字符变量用来存放字符常量,注意一个字符变量只能存放一个字符。,一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。,31,5.变量初始化,在说明变量的同时给变量一个初始值。,变量定义,分配存储空间,变量初始化,分配存储空间的同时存入数据,int a,b;,int a=1,b=2;,不确定,32,Example:看一看,下列的定义哪些是正确的?,int a=5, b=3;(),int a=b=c=3; (X),int a,b,c; a=b=c=3;()程序运行的时候赋初值,33,#define PI 3.14159main( ) float s, r; scanf(%f, /* 输出变量s 的值(面积) */,1 s=3.14 (共输出6个字符且有2位小数) 2 s=12.5664 (共输出8个字符且有4位小数),运行结果,Example:,34,运算符与表达式,运算符的分类,分类依据:运算符的功能,分类:,算术运算符,关系运算符,逻辑运算符,赋值运算符,按位运算符,其它运算符,表达式:,是由操作数和运算符组成的序列。,35,算术运算符和算术表达式,1、算术运算符,+:加法,-:减法,*:乘法,/:除法,%:取余或模,3+51+1+3,3-51-1-3,3*5aba.b,3/5=03./5=0.63/5.=0.6,3%5=3a%b=a-n*b a、b必须为整数5%(-3)=5-(-1)*(-3)=2(-12)%(-5)=(-12)-2*(-5)=-2,36,算术表达式,用算术运算符和括符将操作数连接起来的式子,优先级:,( ),* / %,+ -,结合性,自左向右,与数学上一致。,表达式的值:,数值型:int、long、unsigned、double,结合性是指同级运算时运算符的结合方向。如a#b#c (#代表某一运算符)若先运算a#b,再将其结果与c运算,称为左结合性;从左至右运算规则若先运算b#c,再将a与其结果运算,则称右结合性。从右至左运算规则,37,已知: float a=2.0; int b =6,c =3;求解: a*b/c-1.5+ A +abs(-5)=?,12.0/3,4.0 - 1.5,2.5,+65(int),67.5,5,72.5,Example:,38,自增与自减运算符 (重点和难点),+i,-i,先增(减)1,再使用i,i+,i-,先使用i,再增(减)1,(1) 单独使用时,+i;,等 价,i+;,等 价,i=i+1;,(2) j=+i;,(3) j=i+;,若i的初始值为3,i=4;j=4;,i=4;j=3;,39,结合性:,自右向左,例:,i = 2; j = -i+;,分析:(1)+、-、+(正号)、-(取负)是同级运算符,结合方向:自右向左。,(2) -i+等价于-(i+),(3) 对于括号内的自增运算,又要先使用i,再使i增加1。,运算结果: i的值为3,j的值为-2。,40,关系运算符和关系表达式,关系运算:比较运算,比较两个操作数,看是否满足给定的关系。,1、关系运算符,:小于 ,53, 35,=:小于等于,5=3,3:大于,53,35,=:大于等于,5 =3,3 =5 ,与数学上()不同,=:等于,5=3 ,与数学上(=)不同,!=:不等于,5!=3 ,与数学上()不同,41,2、关系表达式,用关系运算符将表达式连接起来的式子,优先级, =,高 低,= !=,结合方向,自左向右,表达式的值,关系成立,即为真,结果为1;,关系不成立,即为假,结果为0;,算术运算符,高 低,C语言中,真:非0值,假:0值,42,逻辑运算符和逻辑表达式,1、逻辑运算符,!:逻辑非,一元运算符,运算规则:取反,真,假,假,真,&:逻辑与 。又称逻辑乘。,运算规则:两个操作数均为真,结果为真。,|:逻辑或 。又称逻辑加。,运算规则:只要两个操作数有一个为真,结果为真。,43,逻辑量或逻辑表达式的值,非0 值:真,0值:假,整型实型字符型指针类型,00.00NULL,44,逻辑表达式,用逻辑运算符将表达式连接起来的式子。,优先级,关系运算符,高 低,&逻辑与,算术运算符,高 低,!逻辑非,高 低,高 低,|逻辑或,结合性,!:自右向左,&、|:自左向右,45,Example:,int a=5; float b=3.5;,!a,0,!b,0,a&b,1,a|b,1,!a&!b,0,46,4、注意,在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。,47,Example7:,a=0; b=1; c=2; d=a+,d=(a+),运算结果: d=0,a=1,b=1,c=2,(1)a & b & c,求解方法:只有a为真(非0),才需要判断b的值,只有a和b都为真,才需要判断c的值。只要a为假,就不必判断b和c,运算立即中止。,48,(2)a | b | c,求解方法:只要a为真(非0),就不必判断b和c;只有a 为假,才判断b;a和b都为假,才判断c。,Example8:,a=0; b=1; c=2; d=a+|b+|- -c;,d=(a+)|(b+)|(- -c);,运算结果: d=1,a=1,b=2,c=2,49,赋值运算符和赋值表达式,1、赋值运算符,= (数学上的等号),功能:将一个表达式的值赋给一个变量。,2、赋值表达式,用赋值运算符将变量和表达式连接起来的式子,形式: =,求值规则: 将“=”右边表达式的值赋给左边的变量。,结合性:自右至左,50,Example:,(1) x=(y=12)/4,y值为12,x值为3,表达式的值为3,(2) x=y=12/4,y值为3,x值为3,表达式的值为3,(3) x=(y=12/4),(y值为3,x值为3,表达式的值为3,(4) (x=y)=12/4,该赋值运算符左边不是变量,而是一个表达式,51,复合赋值运算符,*=、/=、%=、+=、-=、=、&=、=、=,共10个由赋值运算符与算术、位移、位逻辑运算符组成。,复合运算符是一个运算符,但功能上,是两个运算符功能的组合。,Example:,a+=b 相当于 a=a+b,a*=b+c 相当于 a=a*(b+c),a=2; a+=a*=a;,52,其它运算符,1、条件运算符,有两个符号:?、:,它与三个操作数组成三元运算。,一般形式:, ? :,求值规则和表达式的值:,求解表达式1,真(非0),求解表达式2,假(0),求解表达式3,表达式的值,53,优先级:,逻辑 条件 赋值,结合性:,自右至左,Example:,int max,a=5;b=3; max=ab?a:b,-a=b+ ? a+ : b+,y = x10 ? x/10 : x0 ? x: -x;,54,逗号运算符,形式:,逗号表达式1,逗号表达式2,逗号表达式n,求值规则:,从左至右依次计算各表达式的值,优先级,最低,结合性:,自左至右,表达式的值,最后一个表达式的值。,55,Example:,a b y 逗号表达式 y=a=4,b=5,a+b; 4 5 4 9 y=(a=4,b=5,a+b); 4 5 9 9 y=(a=4,b=5),a+b; 4 5 5 9 y=a=(4,b=5),a+b; 5 5 5 10,注意:,C语言常用逗号作为分隔符, 例如:,int a=3,b=4,c=5;,printf(%d,%d,%d,(a,b,c);,printf(%d,%d,%d,a,(a,b,c),c);,56,求字节运算符,形式:,sizeof 变量名sizeof (类型名),功能:,求得变量或某种数据类型所需的字节数。,运算结果:,整型数,Example13:,int a;float x;,sizeof a,sizeof x,sizeof(int),sizeof(float),57,数据类型转换,C语言允许整型、实型、字符型数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论