C语言程序设计第二讲数据类型与运算规则.ppt

C语言程序设计第二讲数据类型与运算规则.ppt

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

四、移位运算 C语言提供了两个移位运算:左移和右移,它们是把整数作为二进制位序列,求出把这个序列左移若干位或者右移若干位所得到的序列。 左移、右移运算表达式的一般形式为: x n 或 x n 其中x为移位运算对象,是要被移位的量;n是要移动的位数。数据左移或右移后空出来的位置补0。 a: 1101,0011 b=a2: 0100,1100 c=a2: 0001,0011 五、位运算赋值运算符 位运算符与赋值运算符可以组成以下5种位运算赋值运算符: =、 |=、 =、 =、 ^= 由这些位运算赋值运算符可以构成位运算赋值表达式。例如: x=y 相当于:x=xy x=2 相当于:x=x2 x=3 相当于:x=x3 x^=5 相当于:x=x^5 §3.6 其他运算 一、逗号运算符 (表达式 1,表达式 2,表达式 3,……表达式 n) 用于连接几个表达式 求解过程 顺序求解几个表达式 优先级(1) 逗号运算符的优先级最低 结合性 左结合 X = ( ( a=4*5 , a*2 ) , a+6 ) 逗号表达式的值为最后一个表达式的值 共 91 页 第 * 页 二、“.”和“-”运算符 “.”和“-”是运算符,其作用是引用构造数据类型的结构和联合中的分量,即表示结构体或联合中的成员变量。其形式为: 结构体名.结构体成员名 或 结构体名-结构体成员名 例如:stu.num stu-num 共 91 页 第 * 页 二、“( )”和“[ ]”运算符 “()” 运算符常使用于表达式中,其作用是改变表达式的运算次序;也可在强制类型转换运算或sizeof运算中使用,另外还可用于函数的参数表。 “[]”被称为下标运算符,用于数组的说明及数组元素的下标表示。 共 91 页 第 * 页 二、“*”和“”运算符 “*”是指针运算符,其含义是访问指针所指向的内容。“” 是地址运算符,其含义是取指定变量的地址。“*”和“”运算符使用的一般形式为: * 指针变量 内存变量 “* 指针变量”的功能是访问指针变量所指的内容,“ 内存变量” 的功能是取出指定内存变量的地址,例如: *pc a 共 91 页 第 * 页 §3.7 混合运算及数据类型转换 数据类型转换是由C语言的编译系统自动完成的,是一种“隐式的”自动类型转换,这种“隐式的”类型转换不会体现在C语言源程序中。但是,C语言程序设计人员必须了解这种自动转换的规则及其结果,否则会引起对程序执行结果的误解。 共 91 页 第 * 页 各类数值型数据间的混合运算: 将不同数据类型先转换成同一类型,然后进行运算。 自动进行-------隐式转换 强制进行-------显式转换 一、隐式转换(算术转换) 优先级低的向优先级高的转换 规则 方式 共 91 页 第 * 页 double float long unsigned int char 精度高 精度低 2.0 + 1/2; 表达式的值? 2.0 例: 共 91 页 第 * 页 f的类型? int double double double 已知:int i; long e; float f; douible d; f = 10 + ‘a’ + i * f - d / e double 运算过程中的类型转换不是变量本身数据类型的转换 例: 共 91 页 第 * 页 二、强制类型转换 (类型标识符)表达式 (int) (10+’a’+i*f-d/e) 将该结果强制转换为整型 还可以赋值转换, 输出转换等 转换形式 关于数据有效位的说明(3_51.C) main() {float x,y,a,b,c; a=123456789.1234567; b=123.1234567; c=12345.123456789; x=111111222222.111;y=222222333333.222; printf(%f,%e\n,x+y,x+y); printf(%f,%f,%f\n,a,b,c); getch(); } 关于数据有效位的说明 /*[3_51 you xiao wei]*/ main() {float x,y,a,b,c; a=123456789.1234567; b=12

文档评论(0)

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

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

1亿VIP精品文档

相关文档