C程序设计经典讲座_第1页
C程序设计经典讲座_第2页
C程序设计经典讲座_第3页
C程序设计经典讲座_第4页
C程序设计经典讲座_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、C程序设计经典讲座C程序设计经典讲座PPTl C的数据类型 l 常量与变量 l 整型数据 l 实型数据 l 字符型数据l 变量赋初值l 各类数值型数据间的混合运算l 算术运算符和算术表达式l 赋值运算符和赋值表达式l 逗号运算符和逗号表达式 C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式n变量要先说明,后使用。变量要先说明,后使用。 n变量的定义包括变量的定义包括 n 数据类型数据类型 n 存储类型存储类型n 作用域作用域 C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式其值不可以再分解为其它类型,利用这些数据类型还

2、可以生成更复杂的数据结构,如表、栈、队列等根据已定义的一个或多个数据类型用构造的方法来定义 其值用来表示某个量在内存储器中的地址 其类型说明符为void n常量常量: 其值不能被改变的量称为常量其值不能被改变的量称为常量,常量被分为常量被分为不同的类型不同的类型 n 直接常量直接常量 n 整型常量整型常量 n 实型常量实型常量 n 字符常量字符常量 n 符号常量符号常量 ,用用标识符标识符表示表示# define PRICE 30 C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式12、0、-3 4.6、-1.23 a、b 例标识符标识符: 用来表示变量名、

3、符号常量名、函数名、数组名、用来表示变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列类型名、文件名的有效字符序列。l 字母、数字、下划线。字母、数字、下划线。l 标识符的长度有一定的限制。标识符的长度有一定的限制。 l 区分大小写区分大小写例例31 符号常量的使用符号常量的使用# define PRICE 30# include void main三三int num,total;num=10;total=num*PRICE;printf(“total=%dn”,total);符号常量名一般情况都用大写形式表示,而变量名都用小写形式表示 n变量:变量:代表内存中具有特定属性的一个

4、存储单元,代表内存中具有特定属性的一个存储单元,用来存放数据(不同于符号常量,可以任意赋值)用来存放数据(不同于符号常量,可以任意赋值)a 变量名(标识符)变量名(标识符)3变量值变量值存储单元存储单元区分变量值与变量名用来存放一些初始值、计算的中间结果或最终结果。 l变量的作用变量的作用l变量的命名规则:知名见意变量的命名规则:知名见意l变量的强制定义规则变量的强制定义规则 可以使程序中的变量使用不发生错误可以使程序中的变量使用不发生错误在编译时就可对该变量分配内存在编译时就可对该变量分配内存 确定了对这个变量所能进行的操作确定了对这个变量所能进行的操作 n整型常量的表示方法整型常量的表示方

5、法n十进制整数十进制整数n八进制整数八进制整数n十六进制整数十六进制整数n整型变量整型变量n内存中的存放形式内存中的存放形式n整型变量的分类整型变量的分类n整型变量的定义整型变量的定义n整型数据的溢出整型数据的溢出 C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式例例0000000000001010例例 i i1010例例 i=i=10101111111111110110类型说明符数的范围字节数基本型int-3276832767 即-215(215-1)2无符号基本型unsigned int065535 即0(216-1)2短整量short int-327

6、6832767 即-215(215-1)2无符号短整型unsigned short int065535 即0(216-1)2长整型long int-21474836482147483647 即-231(231-1)4无符号长整型unsigned long04294967295 即0(232-1)4例例32 整型变量的定义与使用整型变量的定义与使用# include void main三三int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d”,c,d);a+u=22,b+u=-14例例33 整型数据的溢出

7、整型数据的溢出# include void main三三int a,b;a=32767;b=a+1;printf(“%d,%d”,a,b);32767,-32768n实型常量的表示方法实型常量的表示方法n十进制数形式十进制数形式 n指数形式指数形式 n实型变量实型变量n内存中的存放形式内存中的存放形式n实型变量的分类实型变量的分类n实型数据的舍入误差实型数据的舍入误差 C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式实型常数不分单、双精度,都按双精度实型常数不分单、双精度,都按双精度double型处理型处理 +.3141591数符小数部分指数类型说明符比特

8、数(字节数)有效数字数的范围单精度float32(4)6710-371038 双精度double64(8)151610-30710308 长双精度long double 128(16)181910-4931104932 lfloat型的数据提供型的数据提供7位有效数字位有效数字 ldouble型的数据提供型的数据提供1516位的有效数字位的有效数字 l程序清单程序清单lmain三三float x;x=7.1234567890;printf(%20.18f,x); 程序清单程序清单_ 程序清单程序清单main三三float x;double y;x=123456.789; y=123456.78

9、9; printf(%f,%f,x,y); /*只能将七位有效数字赋值给只能将七位有效数字赋值给x*/*能将全部数位赋值给能将全部数位赋值给y*/n字符常量字符常量n字符变量字符变量n字符数据在内存中的存储形式及使字符数据在内存中的存储形式及使用方法用方法n字符串常量字符串常量 C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式a、b 转义字符 定义定义 char c1,c2; C语言中规定有另一类字符常量,它们以开头,被称作转义字符。 我们前面已多次遇到的n这个符号,它表示换行符号。 这些转义字符只有几个很常用,如n、t、。 转义字符转义字符的意义ASCI

10、I代码n回车换行10t横向跳到下一制表位置9b退格8r回车13f走纸换页12反斜线符92单引号符39”双引号符34a鸣铃7ddd13位八进制数所代表的字符xhh12位十六进制数所代表的字符例C语言中还规定有另一类字符常量,它们以开头,被称作转义字符。 例例3.5 转义字符的使用转义字符的使用# include printf(“ ab ct derftgn”);printf(“ htibbj kn”);打印结果:fab c gdeh jik显示结果:f gdeh j kl存放字符的存放字符的ASCII码,而不是字符本身码,而不是字符本身l一个字符数据既可以以字符形式输出,也一个字符数据既可以以字

11、符形式输出,也可以以整数形式输出可以以整数形式输出l字符数据和整型数据可以相互赋值字符数据和整型数据可以相互赋值例例ASCII 码 x120y121011110000 1 1 1 1 0 0 1a=xb=y例例3.6 程序清单程序清单main三三char x1,x2;x1=97;x2=98;printf(%c,%c,x1,x2);a,b 输出字符的使用格式例例 3.7 大小写字母的转换大小写字母的转换main三三char x1,x2;x1=a;x2=b;x1=x1-32;x2=x2-32;printf(%c,%c,x1,x2); A,B 允许字符数据与整数直接进行算术运算int i;char

12、c;i=a;C=97;如果ASCII码值为128255,用d输出时则显示负数形式字符数内存空间字符常量 单个一个字节字符串常量“ ”一个或多个字符串中字节数加1 lx在在内存中的表示为在在内存中的表示为 lx在在内存中的表示为在在内存中的表示为 x0 xC语言中没有专门的字符串变量0为系统自动加上一般形式:一般形式: C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式类型说明符类型说明符 变量变量1= 值值1,变量,变量2= 值值2,; 例如:例如:int a=3; 可以定义变量的时候同时赋值可以定义变量的时候同时赋值int b,c=5; 可以给一部分变量赋

13、值可以给一部分变量赋值float x=3.2,y=3f,z=0.75;char ch1=K,ch2=P;赋值符号变量赋初值就是在定义变量的同时,给变量赋一个值。变量赋初值就是在定义变量的同时,给变量赋一个值。 n自动转换(由系统自动完成)自动转换(由系统自动完成)n强制类型转换强制类型转换 C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式n一般形式:一般形式: (类型说明符类型说明符) (表达式表达式) n例如:例如:(float) a 把把a转换为实型转换为实型 (int)(x+y) 把把x+y的结果转换为整型的结果转换为整型 字符型数据在内存中是按数值

14、方式存放的。而整型数据和实型数据肯定也是按数值方式存放的。在这种前提下,这三种类型的数据实际上是可以进行混合运算的。 intchar,shortdoublelongunsigned1)若参与运算量的类型不同,则先转)若参与运算量的类型不同,则先转换成同一类型,然后进行运算换成同一类型,然后进行运算 2)转换按数据长度增加的方向进行,)转换按数据长度增加的方向进行,以保证精度不降低以保证精度不降低 3)所有的浮点运算都是以双精度进行)所有的浮点运算都是以双精度进行的的 4)char型和型和short型参与运算时,必须型参与运算时,必须先转换成先转换成int型型 5)在赋值运算中,赋值号两边量的)

15、在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。类型将转换为左边量的类型。低低高高floatnC运算符简介运算符简介n算术运算符和算术表达式算术运算符和算术表达式 C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式算术运算符 + - * / %关系运算符 = = !=逻辑运算符! & |位运算符 | &赋值运算符 =及其扩展赋值运算符条件运算符? :逗号运算符,指针运算符* &求字节数运算符sizeof强制类型转换运算符(类型)分量运算符. -下标运算符 其他如函数调用

16、运算符( ) C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式n算术表达式算术表达式n运算符的优先级与结合性运算符的优先级与结合性n强制类型转换运算符强制类型转换运算符n自增、自减运算符自增、自减运算符例l用算术运算符号和括号将运算对象(也称用算术运算符号和括号将运算对象(也称操作数)连接起来的、符合操作数)连接起来的、符合C语法规则的语法规则的式子,称为算术表达式。式子,称为算术表达式。l运算对象包括常量、变量、函数等。看下运算对象包括常量、变量、函数等。看下面的例子:面的例子:3+4.5*a-b*4/3例例3.8 强制类型转换强制类型转换main三三d

17、ouble x;int y;x=33.3;y=(int)x;printf(%f,%d,x,y); 33.300000,33 在进行强制类型转换时,要产生一个临时数据,这个临时数据的类型是指定的类型,而原始数据的类型不会发生变化。 l+是自增运算符是自增运算符l-是自减运算符是自减运算符l+k的具体含义是:先使的具体含义是:先使k的值加的值加1,然,然后再使用后再使用k的值。的值。k+的具体含义是:先使用的具体含义是:先使用k的值,然的值,然后再使后再使k的值加的值加1。l 多用于循环语句中多用于循环语句中 例子:例子:k=1; j=+k; j的值被赋成的值被赋成2 k=1; j=k+; j的值

18、被赋成的值被赋成1注意:注意:l1、 自增运算符(自增运算符(+)和自减运算符()和自减运算符(-)都只能用于变)都只能用于变量,而不能用于常量或表达式。因为常量的值是不允许量,而不能用于常量或表达式。因为常量的值是不允许改变的,而表达式的值实际上也是一个常量。改变的,而表达式的值实际上也是一个常量。l2、 +、-和负号运算符(和负号运算符(-)的优先级别是一样的,但比)的优先级别是一样的,但比算术运算符的优先级别高。算术运算符的优先级别高。l3、+、-的结合方向是的结合方向是“自右向左自右向左”的。如:的。如:-i+优先级运算符含义要求运算对象的个数结合方向 +自增运算符1(单目运算符)自右

19、至左2 - -自减运算符(类型)类型转换运算符3*乘法运算符2(双目运算符)自左至右 /除法运算符求余运算符4 +加法运算符2(双目运算符)自左至右 -减法运算符n赋值运算符赋值运算符n类型转换类型转换n复合的赋值运算符复合的赋值运算符n赋值表达式赋值表达式 C C程序设计程序设计 第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式变量表达式变量表达式x=a+b 、a8规则:规则:1)实型赋予整型,舍去小数部分。)实型赋予整型,舍去小数部分。2)整型赋予实型,数值不变,但将以浮点形式存)整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分放,即增加小数部分(小数部分的值为小数

20、部分的值为0)。3)float型与型与double型型4)字符型赋予整型,由于字符型为一个字节,而整型)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的为二个字节,故将字符的ASCII码值放到整型量的码值放到整型量的低八位中。有两种情况低八位中。有两种情况 :v 系统将字符处理为系统将字符处理为无符号字符类型无符号字符类型 v 系统(如系统(如 Trubo C+)将字符处理为)将字符处理为带符号带符号 的的 总结:按存储单元的存储形式直接传送。总结:按存储单元的存储形式直接传送。5)将一个)将一个int,short,long型数据赋给一个型数据赋给一个char型变量时,只将低

21、型变量时,只将低8位原封不动地送到位原封不动地送到 char型变量,即截断。型变量,即截断。00 10 00 0100 00 00 01c=!00 10 00 01i=28911 11 11 1000 00 00 00c=37611 11 11 10i:11 11 11 1011 11 11 11c=37611 11 11 10i:符号扩展:保持数符号扩展:保持数值不变值不变 变量变量 双目运算符双目运算符=表达式表达式a+=5 a=a+5 x*=y+7 x=x*(y+7) r%=p r=r%p +=,-=,*=,/=,%=,=,&=, =,|= “表达式”又可以是一个赋值表达式例如:例如:a=b=5b=5和和a=bprintf(“%d”,a=b);我们再来看几个例子:我们再来看几个例子:la=b=c=5 /*整个表达式的值为整个表达式的值为5,abc的值也为的值也为5*/la=5+(c=6) /*整个表达式的值为整个表达式的值为11,

温馨提示

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

评论

0/150

提交评论