欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言第三章数据类型、运算符与表达式C.ppt

    • 资源ID:70104916       资源大小:564KB        全文页数:56页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言第三章数据类型、运算符与表达式C.ppt

    第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式第三章第三章 数据类型、运算符和表达式数据类型、运算符和表达式主要内容主要内容C语言的常量与变量语言的常量与变量C语言的基本数据类型语言的基本数据类型各数据类型间的混合运算各数据类型间的混合运算运算符和表达式运算符和表达式C语言的数据类型语言的数据类型我们上节课讲到:我们上节课讲到:著名的计算机科学家著名的计算机科学家N.Wirth提出:提出:程序程序=数据结构数据结构(描述数据)(描述数据)+算法算法(描述操作)(描述操作)一个良好的程序,应当综合考虑算法和数据结构一个良好的程序,应当综合考虑算法和数据结构算法处理的对象是数据,而数据是以某种特定的形式算法处理的对象是数据,而数据是以某种特定的形式存在的存在的数据结构是指数据的组织形式数据结构是指数据的组织形式C语言的数据类型语言的数据类型C语言的数据结构是以数据类型形式出现的语言的数据结构是以数据类型形式出现的C数数据据类类型型指针类型指针类型空类型空类型 void定义类型定义类型 typedef基本类型基本类型字符类型字符类型 char数值类型数值类型整整 型型短整型短整型 short长整型长整型 long整型整型 int浮点型浮点型单精度型单精度型 float双精度型双精度型 double构造类型构造类型枚举类型枚举类型 enum数组数组结构体结构体 struct共用体共用体 union常量和变量常量和变量一、基本字符集一、基本字符集字符,字符,是组成语言的最基本元素,允许出现在是组成语言的最基本元素,允许出现在C语言源语言源程序的所有字符的集合,称为字符集。程序的所有字符的集合,称为字符集。字母:字母:az,AZ 数字:数字:09 特殊字符:控制字符、分隔符、运算符特殊字符:控制字符、分隔符、运算符常量和变量常量和变量二、关键字二、关键字关键字关键字,也叫做,也叫做保留字保留字,是指在,是指在C语言中具有特定的含语言中具有特定的含义的字符,它们由系统定义,不能做为他用。义的字符,它们由系统定义,不能做为他用。C语言中的一共有语言中的一共有32个关键字:个关键字:autobreakcase charconst continuedefaultdodoubleelse enumexternfloatforgoto ifintlongregisterreturn shortsignedsizeofstaticstruct switchtypedefunsigned unionvoid volatilewhile常量和变量常量和变量三、标识符三、标识符用来标识变量名、符号常量名、函数名、数组名、类用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。型名、文件名的有效字符序列称为标识符。也就是说,也就是说,标识符是一个名字标识符是一个名字C语言中的标识符只能由语言中的标识符只能由字母、数字和下划线字母、数字和下划线组成组成而且而且第一个字符不能是数字第一个字符不能是数字不能将关键字作为标识符不能将关键字作为标识符常量和变量常量和变量C语言中的标识符只能由语言中的标识符只能由字母、数字和下划线字母、数字和下划线组成组成而且而且第一个字符不能是数字第一个字符不能是数字问题:下面四个选项中,均是合法的标识符的选项是问题:下面四个选项中,均是合法的标识符的选项是(A)a1 b!12_e(B)min f12 1x(C)a int PI(D)x2 m_nsum min 常量和变量常量和变量标识符的注意事项标识符的注意事项C语言语言区分大小写区分大小写,大小写不同的标识符是不同的,大小写不同的标识符是不同的例如:例如:Student和和student是两个不同的标识符是两个不同的标识符标识符的标识符的长度有限制长度有限制,要注意开发环境的限定,要注意开发环境的限定Turbo C 允许的标识符的最大长度是允许的标识符的最大长度是32标识符的命名标识符的命名用有意义的单词组合用有意义的单词组合如:如:Stu_Num表示学号,表示学号,不要一味地用不要一味地用a,b,c等简单标识符名等简单标识符名常量和变量常量和变量三、常量三、常量常量:在程序的运行过程中,其值不能被改变常量:在程序的运行过程中,其值不能被改变常量的分类:常量的分类:按字面形式按字面形式直接常量(字面常量)直接常量(字面常量)符号常量符号常量按数据类型按数据类型整型常量整型常量实型常量实型常量字符常量字符常量0、-2、1230.2、4.8、1.3e20A、g、+、?(用标识符表示的常量)(用标识符表示的常量)/*Constant example*/#define PRICE 30define PRICE 30 main()int num,total;num=10;total=num*PRICEPRICE;printf(total=%d,total)运行结果运行结果:total=300符号常量定义符号常量定义符号常量使用符号常量使用常量和变量常量和变量使用符号常量的优点:使用符号常量的优点:含义清晰(定义时要注意采用合适的常量名)含义清晰(定义时要注意采用合适的常量名)一改全改一改全改/*Constant example*/#define PRICE 30define PRICE 30 main()int num,total;num=10;total=num*PRICEPRICE;printf(price=%d,total=%d,PRICEPRICE,total)运行结果运行结果:price=30,total=300/*Constant example*/#define PRICE define PRICE 2525 main()int num,total;num=10;total=num*PRICEPRICE;printf(price=%d,total=%d,PRICEPRICE,total)运行结果运行结果:price=30,total=300/*Constant example*/#define PRICE define PRICE 2525 main()int num,total;num=10;total=num*PRICEPRICE;printf(price=%d,total=%d,PRICEPRICE,total)运行结果运行结果:price=25,total=250用指定的字符串用指定的字符串PRICE来代替来代替“25”在预编译处理时在预编译处理时会将程序中所有会将程序中所有“PRICE”用用“25”代替代替替换时是做简单地置换,不作正确性检查替换时是做简单地置换,不作正确性检查常量和变量常量和变量使用符号常量的优点:使用符号常量的优点:含义清晰(定义时要注意采用合适的常量名)含义清晰(定义时要注意采用合适的常量名)一改全改一改全改/*Constant example*/#define PRICE define PRICE 2525 main()int num,total;num=10;total=num*PRICEPRICE;printf(“price=%d,total=%d”,PRICEPRICE,total);运行结果运行结果:price=25,total=250宏定义(参见第十一章)宏定义(参见第十一章)常量名一般用大写字母常量名一般用大写字母#define命令出现在函数外命令出现在函数外有效范围是从定义处到源文件结束有效范围是从定义处到源文件结束宏定义不是宏定义不是C语句,不需要分号语句,不需要分号常量和变量常量和变量使用符号常量的优点:使用符号常量的优点:含义清晰(定义时要注意采用合适的常量名)含义清晰(定义时要注意采用合适的常量名)一改全改一改全改/*Constant example*/#define PRICE define PRICE 2525 main()int num,total;PRICEPRICE=50;num=10;total=num*PRICEPRICE;printf(price=%d,total=%d,PRICEPRICE,total)运行结果运行结果:price=25,total=250常量不能被再次赋值常量不能被再次赋值编译时,简单地将编译时,简单地将“PRICE”替换成替换成“25”此语句被替换成:此语句被替换成:25=50常量和变量常量和变量四、变量四、变量变量:在程序的运行过程中,其值可以被改变的量变量:在程序的运行过程中,其值可以被改变的量变量必须用有效的标识符作为名字变量必须用有效的标识符作为名字变量名变量名实际上是存放实际上是存放变量值变量值的存储单元地址的抽象的存储单元地址的抽象XXXXXXXXXXXXXXXX内存内存XXXXXXXXint sum;sumXXXXXXXX0内存内存XXXXXXXXsum=0;sum=sum+1;XXXXXXXX1内存内存XXXXXXXX常量和变量常量和变量四、变量四、变量C语言要求对所有变量:语言要求对所有变量:先定义,后使用先定义,后使用(强制定义)(强制定义)保证程序中的变量名使用正确保证程序中的变量名使用正确如:程序在声明部分声明变量如:程序在声明部分声明变量student:int student;在执行部分错写成在执行部分错写成studant:studant=30;在编译的时候会检查出在编译的时候会检查出studant未定义,不做为变量名未定义,不做为变量名编译时分配相应的存储单元编译时分配相应的存储单元编译时可以检查该变量所进行的运算是否合法编译时可以检查该变量所进行的运算是否合法如:在程序的声明部分做了如下定义:如:在程序的声明部分做了如下定义:int a;float b;在程序的执行部分有下面运算:在程序的执行部分有下面运算:a%b编译时会给出相关的出错信息编译时会给出相关的出错信息类型说明符类型说明符 变量列表变量列表int number整型数据整型数据一、整型常量的表示一、整型常量的表示v十进制十进制 如:如:123,-123,0v八进制八进制(以(以 0 开头)开头)如:如:0123 表示十进制数表示十进制数83v十六进制十六进制(以(以 0 x 开头)开头)如:如:0 x123表示十进制数表示十进制数291整型数据整型数据二、整型变量在内存中的存储二、整型变量在内存中的存储整型变量在内存中是以二进制整型变量在内存中是以二进制补码补码补码补码的形式存放的的形式存放的int i=10;int j=-10;10ij-1000000000 0000101011111111 1111011011111111 11110101取反加1整型数据整型数据三、整型变量的种类三、整型变量的种类v基本类型:基本类型:intv根据数值的范围分为:根据数值的范围分为:int,short,longv根据有无符号根据有无符号(singed/unsigned)及范围可分:及范围可分:类型类型比特数比特数取值范围取值范围signed int16-215 (215-1)unsigned int160 (216-1)signed short int16-215 (215-1)unsigned short int160 (216-1)signed long int32-231 (231-1)unsinged long int320 (232-1)01111111 11111111signed int 的最大值的最大值32767(215-1)10000000 00000000signed int 的最小值的最小值-32768(-215)11111111 11111111unsigned int的最大值的最大值65535(216-1)00000000 00000000unsigned int的最小值的最小值0整型数据整型数据四、整型变量的定义四、整型变量的定义变量定义放在变量定义放在函数开头的声明部分函数开头的声明部分或者或者函数中某一分函数中某一分程序开头的声明部分程序开头的声明部分。main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(c=%d,d=%d,c,d);main()int a,b;unsigned u;a=12;b=-24;u=10;int c,d;c=a+u;d=b+u;printf(c=%d,d=%d,c,d);Compiling c:ex3-2.cError.5:Expression syntax in function mainError.6:Undefined symbol c in function mainError.7:Undefined symbol d in function mainmain()int a,b;unsigned u;a=12;b=-24;u=10;int c,d;c=a+u;d=b+u;printf(c=%d,d=%d,c,d);整型数据整型数据五、整型数据的溢出五、整型数据的溢出一个一个int型变量允许的最大值是型变量允许的最大值是3276701111111 11111111signed int 的最大值的最大值32767(215-1)10000000 00000000signed int 的最小值的最小值-32768(-215)当给当给32767加加1时:时:01111111 1111111110000000 00000000main()int a,b;a=32767;b=a+1;printf(a=%d,b=%d,a,b);a=32767,b=-32768输出输出:整型数据整型数据五、整型数据的溢出五、整型数据的溢出一个一个int型变量允许的最大值是型变量允许的最大值是32767main()int a,b;a=65544;b=a+1;printf(a=%d,b=%d,a,b);a=8,b=9输出:输出:0000100000000000a10000100100000000b1整型数据整型数据六、整型常量的类型六、整型常量的类型v一个整数,若值在一个整数,若值在-3276832767范围内,认为是范围内,认为是int型型v一个整数,若在一个整数,若在-21474836482148473647范围内,而范围内,而超过了超过了-3276832767的范围,认为是的范围,认为是long int型型v一个整数,后面加一个字母一个整数,后面加一个字母u或或U,认为是认为是unsigned int型型如:如:12345uv一个整数,后面加一个字母一个整数,后面加一个字母l或或L,认为是认为是long int型型如:如:12345L实型数据实型数据一、实型常量的表示一、实型常量的表示v十进制小数形式十进制小数形式如:如:.123 123.0.123 0.0v指数形式指数形式 如:如:123e3 123E3 1.23e5注意:注意:e的前面必须有数字,后面必须是整数的前面必须有数字,后面必须是整数如:如:e32 1.23e2.3 e 都是不合法的都是不合法的实型数据实型数据二、实型变量在内存中的存储二、实型变量在内存中的存储实型变量在内存中以实型变量在内存中以指数指数指数指数的形式存放,一般占的形式存放,一般占4 4个字节个字节float f=3.14159;3.14159 =0.314159 101 =0.1100100 10000111 11100111 10101100100 10000111 1110011100000001阶码阶码小数部分小数部分数符数符阶符阶符实型数据实型数据三、实型变量的种类三、实型变量的种类v基本类型:基本类型:floatv根据数值的范围分为:根据数值的范围分为:vfloat(单精度型)单精度型)vdouble(双精度型)双精度型)vlong double(长双精度型)长双精度型)类型类型字节数字节数有效数字有效数字取值范围取值范围float46710-38 1038double8151610-308 10308long double16181910-4932104932main()float a,b;a=12345.6789e5;b=a+20;printf(a=%fnb=%f,a,b);a=1234567848.000000b=1234567848.000000输出输出:实型数据实型数据四、实型常量的类型四、实型常量的类型vC编译系统将一个实数做为编译系统将一个实数做为double类型处理类型处理main()double a;float b;a=2.45678*4523.65;b=2.45678*4523.65;printf(a=%fnb=%f,a,b);a=11113.612847b=11113.613281输出输出:先计算出先计算出2.45678*4523.65=1113.612847然后将前然后将前7位数赋值给位数赋值给float型的型的b实型数据实型数据四、实型常量的类型四、实型常量的类型vC编译系统将一个实数做为编译系统将一个实数做为double类型处理类型处理v可以在实数后面加可以在实数后面加f或或F,表示表示float型实数,型实数,编译系统会按单精度实数(编译系统会按单精度实数(32位)处理位)处理如:如:123.456f 456.789F字符型数据字符型数据一、字符常量的表示一、字符常量的表示v用用单引号单引号括起的括起的单个单个字符字符如:如:a B?v用用“”开头的开头的转义字符转义字符字符形式字符形式含含 义义ASCIIASCII码码n换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头10t水平制表(跳到下一个水平制表(跳到下一个tab位置)位置)9b退格,将当前位置移到前一列退格,将当前位置移到前一列8r回车,将当前位置移到本行开头(不换行)回车,将当前位置移到本行开头(不换行)13f换页,将当前位置移到下页开头换页,将当前位置移到下页开头12反斜杠字符反斜杠字符“”92单撇号字符单撇号字符39双撇号字符双撇号字符34ddd1到到3位位8进制数所代表的字符进制数所代表的字符xhh1到到2位位16进制数所代表的字符进制数所代表的字符012 或或 xa 表示表示ASCII码为码为10的的“换行换行”101 或或 x41表示表示ASCII码为码为65的字母的字母A000 或或 x00 表示表示ASCII码为码为0的的“空操作空操作”字符字符字符型数据字符型数据二、字符变量在内存中的存储二、字符变量在内存中的存储一个字符变量只能存放一个字符一个字符变量只能存放一个字符定义形式:定义形式:char c1,c2;赋值:赋值:c1=a;c2=n;字符数据在内存中以字符数据在内存中以ASCII码(二进制)的方式存储码(二进制)的方式存储占一个字节占一个字节0 1 1 0 0 0 0 1c1970 0 0 0 1 0 1 0c210字符型数据字符型数据一、字符变量在内存中的存储一、字符变量在内存中的存储字符数据可以和整型数据通用字符数据可以和整型数据通用 a,b 97,98输出输出:main()char ch1,ch2;ch1=97;ch2=98;printf(%c,%cn,ch1,ch2);printf(%d,%dn,ch1,ch2);字符型数据字符型数据一、字符变量在内存中的存储一、字符变量在内存中的存储字符数据可以和整型数据通用字符数据可以和整型数据通用 a,97 a,97输出输出:main()char ch;int i;ch=97;i=a;printf(%c,%dn,ch,ch);printf(%c,%dn,i,i);字符型数据字符型数据一、字符变量在内存中的存储一、字符变量在内存中的存储字符数据可以和整型数据通用字符数据可以和整型数据通用 D,68 a,97输出输出:main()/*大小写字母转换大小写字母转换*/char c1,c2;c1=A;c2=c1+32;c1=c1+3;printf(%c,%dn,c1,c1);printf(%c,%dn,c2,c2);问题:已知换行的问题:已知换行的ASCII码值为码值为10,则下列正确表示换行,则下列正确表示换行符的方法是符的方法是:(:(ch是字符型变量是字符型变量)(A)ch=n;(B)ch=10;(C)ch=12;(D)ch=x10;(E)ch=xa;(F)ch=10;字符型数据字符型数据字符型数据字符型数据二、字符常量的表示二、字符常量的表示main()printf(ab ct derftgn);printf(“htibbj k”);显示器显示器123456789 10 11a b c d ef gh ij k显示器显示结果的特点:向回返的特殊符号(向回返的特殊符号(r b等),并没有清除原有的内容等),并没有清除原有的内容向前进的特殊符号(向前进的特殊符号(t空格)或字符修改了原有的内容空格)或字符修改了原有的内容字符型数据字符型数据三、字符串常量三、字符串常量字符串常量是字符串常量是一对一对双撇号双撇号括起来的括起来的字符序列字符序列如:如:Hello Word!a 123.4546e3 注意:注意:“a”和和 a 的区别的区别 char c;c=a;c=a;O字符型数据字符型数据四、字符串常量的存储四、字符串常量的存储C语言将字符语言将字符0作为字符串的结束标志作为字符串的结束标志china 0字符串字符串china970字符串字符串a0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 097字符字符a0 1 1 0 0 0 0 10是系统自动加上的,写字符串的时候不必加是系统自动加上的,写字符串的时候不必加0c=a;c=a0;OC 语言的运算符语言的运算符C 语言的运算符语言的运算符运算符是描述对数据进行特定运算的符号运算符是描述对数据进行特定运算的符号算术运算符算术运算符+-*/%+-关系运算符关系运算符 =!=逻辑运算符逻辑运算符!&|位运算符位运算符|&赋值运算符赋值运算符=及其扩展(+=-=等)逗号运算符逗号运算符,强制类型转换强制类型转换(类型)(类型)条件运算符条件运算符?:分量运算符分量运算符.-指针运算符指针运算符*&下标运算符下标运算符求字节数求字节数sizeof其它其它()-C 语言的运算符语言的运算符学习运算符应注意的问题:学习运算符应注意的问题:运算符的功能运算符的功能与运算量的关系与运算量的关系要求运算量的个数(单目运算符?双目运算符?)要求运算量的个数(单目运算符?双目运算符?)要求运算量的类型(整型?实型?字符型?其他类型?)要求运算量的类型(整型?实型?字符型?其他类型?)运算符的优先级别运算符的优先级别结合方向(从左至右?从右至左?)结合方向(从左至右?从右至左?)运算结果的类型运算结果的类型C 语言的表达式语言的表达式C语言的表达式语言的表达式运算符与运算对象连接在一起就构成了运算符与运算对象连接在一起就构成了表达式表达式赋值运算符和赋值表达式赋值运算符和赋值表达式简单的赋值运算符:简单的赋值运算符:符号:符号:=格式:格式:变量标识符变量标识符=表达式表达式将一个表达式的值(或一个常量的值)赋给一个将一个表达式的值(或一个常量的值)赋给一个变量变量结合方向:结合方向:从右至左从右至左注意:左边必须是变量,不可以是表达式注意:左边必须是变量,不可以是表达式赋值运算符和赋值表达式赋值运算符和赋值表达式变量赋初值:变量赋初值:C语言允许定义变量的同时使变量初始化语言允许定义变量的同时使变量初始化变量数据类型变量名变量初值变量数据类型变量名变量初值;变量数据类型变量名变量数据类型变量名;变量名变量初值变量名变量初值;float x=3.125;int i=-5;char c=A;float x;int i;char c;x=3.125;i=-5;c=A;若同时给几个变量赋值:若同时给几个变量赋值:int a=5,b=5,c=5;赋值运算符和赋值表达式赋值运算符和赋值表达式类型转换:类型转换:将实型值赋值给整型变量时,舍弃小数部分将实型值赋值给整型变量时,舍弃小数部分将整型赋值给实型变量时,数值不变,以浮点形式存储将整型赋值给实型变量时,数值不变,以浮点形式存储到变量中到变量中将将double型值赋值给型值赋值给float型变量时,截取前面型变量时,截取前面7位有效位有效数字数字将一个数值(整型或实型)赋值给一个字符型变量时,将一个数值(整型或实型)赋值给一个字符型变量时,将数值的低将数值的低8位赋值给字符变量即可位赋值给字符变量即可int a;a=2.845;/*a被赋值被赋值2*/float f;double d;f=23;/*f被赋值被赋值23.00000*/d=23;/*d被赋值被赋值23.00000000000000*/7位16位float f;double d;d=123.456789e5;f=d;printf(f=%fnd=%fn,f,d);f=12345679.000000 d=12345678.900000输出输出:int i;char c;i=289;c=i;printf(i=%dnc=%cn,i,c);0010000100000001i00100001c i=289 c=!输出输出:33赋值运算符和赋值表达式赋值运算符和赋值表达式类型转换:类型转换:将字符型数据赋值给整型变量时,将字符数据(将字符型数据赋值给整型变量时,将字符数据(8位)赋位)赋值给整型变量的低值给整型变量的低8位即可位即可若字符最高位为若字符最高位为0,则整型变量高,则整型变量高8位补位补0若字符最高位为若字符最高位为1,则整型变量高,则整型变量高8位补位补1int i;char c;c=65;i=c;printf(i=%dnc=%cn,i,c);01000001c0100000100000000i i=65 c=A输出输出:int i;char c;c=246;i=c;printf(i=%dnc=%cn,i,c);11110110c1111011011111111i i=-10 c=输出输出:赋值运算符和赋值表达式赋值运算符和赋值表达式复合赋值运算符:复合赋值运算符:在在“=”之前加上其他运算符,就构成了复合赋值运算符之前加上其他运算符,就构成了复合赋值运算符有:有:+=,-=,*=,/=,%=含义:含义:变量标识符变量标识符 op=表达式表达式 变量标识符变量标识符 =变量标识符变量标识符 op 表达式表达式a+=3 x*=y+8x%=3 a=a+3 x=x*(y+8)x=x%3赋值运算符和赋值表达式赋值运算符和赋值表达式赋值表达式的嵌套:赋值表达式的嵌套:int a,b,c;a=b=c=5;a=5+(c=6);a=(b=4)+(c=6);int a=b=c=5;O c=5,b=c=5,a=b=5 c=6,a=5+c=5+6=11 b=4,c=6,a=b+c=10赋值运算符和赋值表达式赋值运算符和赋值表达式赋值表达式的嵌套:赋值表达式的嵌套:int a=12;a+=a-=a*a;a+=a-=144 a+=(a=a 144)a+=(a=-132)a=a+a (a=-132)a=(-132)+(-132)a=-264逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算符:用来将两个表达式连接起来逗号运算符:用来将两个表达式连接起来形式:形式:表达式表达式1,表达式表达式2,表达式表达式3,表达式表达式n优先级:(最低)优先级:(最低)结合方向:结合方向:从左至右从左至右表达式的值:表达式的值:表达式表达式n的值的值用途:用途:通常用于循环结构的通常用于循环结构的for语句中语句中逗号运算符和逗号表达式逗号运算符和逗号表达式 a=3*4,5*2;a=(a=3,5*2);a=1;b=2;c=3;printf(%d,%d,%d,a,b,c);printf(%d,%d,%d,(a,b,c),b,c);a=12,表达式的值表达式的值:10 a=10 输出输出:1,2,3 输出输出:3,2,3算术运算符和算术表达式算术运算符和算术表达式基本的算术运算符:基本的算术运算符:+:加法(或正值)运算符:加法(或正值)运算符如:如:3+2,+3.5-:减法(或负值)运算符:减法(或负值)运算符如:如:3-2,-3.5*:乘法运算符:乘法运算符如:如:3*2,3.5*2/:除法运算符:除法运算符如:如:3/2,3.5/2要说明的是:要说明的是:两个整数相除的结果仍为整数两个整数相除的结果仍为整数:5/3=1若结果为负值,多数机器采用向零取整的办法:若结果为负值,多数机器采用向零取整的办法:-5/3=-1%:模运算符(:模运算符(两个运算量都是整数两个运算量都是整数)如:如:3%2算术运算符和算术表达式算术运算符和算术表达式算术表达式算术表达式用算术运算符和括号,将运算对象(操作数)连接起来用算术运算符和括号,将运算对象(操作数)连接起来符合符合C语法规则的式子语法规则的式子例如:例如:a*b/c+1.5-3.28+f算术运算符和算术表达式算术运算符和算术表达式基本的算术运算符:基本的算术运算符:+,-,*,/,%结合方向:结合方向:从左至右从左至右(左结合性)(左结合性)优先级别:优先级别:-(负值负值)*/%+-(减法减法)说明:说明:整数的算术运算结果仍为整数整数的算术运算结果仍为整数若算术运算中有一个实数,则运算结果为若算术运算中有一个实数,则运算结果为double型型%只能进行整数的取模运算,余数与被除数符号相同只能进行整数的取模运算,余数与被除数符号相同“”为负值运算符时(单目运算),为右结合性为负值运算符时(单目运算),为右结合性2 3 45/3-3*2+-2.5=-7.5000005/2=-5/2.0=5%2=-5%2=5%-2=-5%-2=5%1=5%1.0=2-2.5000001-11-10O自增、自减运算符自增、自减运算符作用:使变量值增作用:使变量值增1或减或减1+i -i:先执行先执行i=i+1(或或i=i-1),再使用再使用i的值的值i+i-:先使用先使用i的值,再执行的值,再执行i=i+1(或或i=i-1)j=3;k=+j;j=3;k=j+;j=3;printf(%d,+j);j=3;printf(%d,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;j=j+1;k=j;结果:k=4,j=4 k=j;j=j+1;结果:k=3,j=4 j=j+1;输出;结果:输出4,j=4 输出;j=j+1;结果:输出3,j=4 a=a+1;c=a*b;结果:a=4,c=20 c=a*b;a=a+1;结果:a=4,c=15自增、自减运算符自增、自减运算符作用:使变量值增作用:使变量值增1或减或减1+i -i:先执行先执行i=i+1(或或i=i-1),再使用再使用i的值的值i+i-:先使用先使用i的值,再执行的值,再执行i=i+1(或或i=i-1)说明:说明:+和和-不能用于常量和表达式不能用于常量和表达式+和和-的结合方向:自右向左的结合方向:自右向左优先级:优先级:-(负值负值),+,-*,/,%,+,-(减法减法)5+-(a*b)O2 3 4 j=3;printf(%d,-j+);-j+相当于-(j+),输出:-3,j=4j=2,k=3;printf(%d,j+k);j+k相当于(j+)+k 输出:5,j=3,k=3各数据类型间的混合运算各数据类型间的混合运算整型、实型、字符型数据间的混合运算整型、实型、字符型数据间的混合运算整型整型和和字符型字符型数据可以通用数据可以通用整型整型和和实型实型数据可以进行混合运算数据可以进行混合运算运算规则:运算规则:不同类型的数据要先转换成同一类型不同类型的数据要先转换成同一类型floatchar,shortdoublelongunsignedintchar和和short型先转成型先转成int型型float型先转成型先转成double型型精度低的转换成精度高的精度低的转换成精度高的116.420000输出输出:main()int a=3;float f=3.14;char c=a;printf(%f,10+c+a*f);979.420000(double)强制类型转换运算符强制类型转换运算符强制类型转换运算符,可以将一个表达式转换成所需类型强制类型转换运算符,可以将一个表达式转换成所需类型一般形式:一般形式:(类型名类型名)(表示式表示式)说明:说明:表达式应当用括号括起来表达式应当用括号括起来在进行强制转换时,得到一个所需类型的中间变量,原在进行强制转换时,得到一个所需类型的中间变量,原来变量的类型并没有发生变化来变量的类型并没有发生变化 (double)a (int)(x+y)(float)(5%3)(int)(x+y)(int)x+y x=3.600000 i=3输出输出:main()float x;int i;x=3.6;i=(int)x;printf(x=%fni=%d,x,i);作业作业P54习题习题

    注意事项

    本文(C语言第三章数据类型、运算符与表达式C.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开