[工学]第二章 数据类型、运算符与表达式.ppt

[工学]第二章 数据类型、运算符与表达式.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第二章 数据类型、运算符与表达式

本章要点 C语言的基本数据类型有哪些? 各种基本数据类型的常量和变量是怎样定义的? C语言有哪些表达式? 各种表达式的求解规则是什么? 用双撇号括起的一个字符序列 如:ABC,123,a,\n\t,\nGood morning C语言的表达式:算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式等。 运算优先级: 单目: + - ++ -- 双目: * / % 双目: + - 例8:写出以下式子所对应的C表达式 数学式 ? C算术表达式 逻辑运算符优先级 ! 算术运算符 关系运算符 || 赋值运算符 左结合 char, short double long float unsigned int 高精度 低精度 说明: 必定的转换 运算对象类型不同时转换 10+‘a’ +i*f - d/l 例 int i; float f; double d; long l; int int double double double double double double 例 char ch; int i; float f; double d; ch/i + f*d - (f+i) int int double double double double double double 一般形式:(类型名)(表达式) 例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变 例 main() { float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); } 结果:x=3.600000,i=3 精度损失问题 较高类型向较低类型转换时可能发生 2. 显式转换(强制转换) 表达式:由运算符和运算对象(操作数)组成的符合C语言语法规则的式子,它的值和类型由参加运算的运算符和运算对象决定。在表达式求值时,先按运算符的优先级别高低执行,如运算对象两侧的运算符优先级别相同时,则按规定的结合方向进行处理. 2.5 运算符与表达式 运算符:具有运算功能的符号. 运算对象:常量、变量和函数等表达式. 2.5.1 基本概念 C 运 算 符 算术运算符:(+ - * / % ++ --) 关系运算符:( = == = !=) 逻辑运算符:((! ||) 位运算符 :( ~ | ^ ) 赋值运算符:(= 及其扩展) 条件运算符:(?:) 逗号运算符:(,) 指针运算符:(* ) 求字节数 :(sizeof) 强制类型转换:(类型) 分量运算符:(. -) 下标运算符:([]) 其它 :(( ) -) 学习运算符应注意: 运算符功能 与运算对象关系 要求运算对象个数(单,双,三) 要求运算对象类型 运算符优先级别 结果的类型 结合性(左-右,右-左) 结合性是指同级运算时运算符的结合方向。 如 a#b#c (#代表某一运算符),b左右都有运算符, 若先运算a#b,再将其结果与c运算,称左结合性,从左至右运算规则 若先运算b#c,再将a与其结果运算,称右结合性,从右至左运算规则 单目:+ - ++ -- 右结合性 双目:+ - * / % 左结合性 2.5.2 算术运算符与算术表达式 说明: / (除), 两整数相除,结果 为整数 高 低 %(模/求余), 要求两侧均为 整型数据 1/2 = -1/2.0 = 0 -0.5 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2 = 1 -1 1 0 (?) 自增、自减运算符++ -- 作用:使变量值加1或减1 种类: ++i, --i :i先增(减)1,再使用i值 i++, i-- :先使用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; //k=4,j=4 //k=3,j=4 //4 //3 //c=20,a=4

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档