数据类型、运算符与表达式.ppt_第1页
数据类型、运算符与表达式.ppt_第2页
数据类型、运算符与表达式.ppt_第3页
数据类型、运算符与表达式.ppt_第4页
数据类型、运算符与表达式.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1 C语言程序设计 数据类型 运算符与表达式 C语言中的沙 石 水泥 2 一 基本数据类型 1 字符型char 用处 定义变量 1个字节 chara charx chari xxxxxxxx xxxxxxxx 字符型变量 1个字节的整数 一般用来储存字符的ASCII编码 a a a 97 ASCIIa 0 x61 16进制 x A x 65 x 0 x41 xxxxxxxx i i 32 i 0 x20 01100001 01000001 00100000 3 c以字符形式输出整数 d以10进制形式输出整数 01100001 00100000 a x i 01000001 printf d a printf c a a 97 内存中的数据都是进制的 但是可以把同一个数据安照不同方式输出 看到的结果就不同 2 aaaaa 4 a a 32 printf c a 01100001 10111011 a x i 01000001 i 187 printf d i 69 A 00100000 01100001 00100000 01000001 01000001 5 负数的表示问题 补码 正数 负数 100 26 25 22 X 28 6 如何得到负数的补码 100 100 十进制 100 补码 7 特殊的负数 负数 128 取反 1 取反 1 1 chari 1 8 再看问题 187 i chari 187 printf d i 10111011 10111011 69 26 22 20 187 69 256 28 9 char类型数据的取值范围 128 127 chara 最小 最大 默认是有符号的 无符号的char unsignedchari 0 255 i 最小 最大 10 2 整型int 用处 定义整型变量 2字节 inta intx inti 注意 标准c规定是2个字节 实际上机时是4个字节 做题时以2个字节为准 01100001 00100000 a a a 97 ASCIIa 0 x61 16进制 x A x 0 x41 x 0101 8进制 00000000 i i 32 i 040 00000000 01000001 00000000 11 12 3 实型float 也称 浮点数用处 定义实型变量 4字节 floata floatx xxxxxxxx a 3 1415 a 100 a a 97 x 96 xxxxxxxx xxxxxxxx xxxxxxxx 13 实型常量的表示方法1 十进制小数形式 12323 0012 指数形式 123e31 234e34 e前必须有数字 e后指数必须为整数 在数的后面加字母f或F 就为单精度数 否则处理成双精度数 如 3 1415f 95 25F 实型变量单精度 float 4B10 38 10386 7双精度 double 8B10 308 1030815 16长双精度 16B10 4931 10493218 19longdouble 14 实型变量的精度问题 单精度 float 4B10 38 10386 7双精度 double 8B10 308 1030815 16长双精度 16B10 4931 10493218 19longdouble floata a 3 14159265358979 printf f a a 314 159265358979 printf f a 3 141593 314 159271 15 占用内存 其值可以改变的量称为变量 C语言中标识符 变量名 命名规则 1 只能由英文字母 数字字符 下划线构成 且第一个字符必须是英文字母 大写或小写 或下划线 2 在C语言中 尽量做到 见名知义 3 变量名一般以小写英文字母形式命名 变量的3大特征 名字 值 地址 变量必须 先定义 后使用 二 什么是变量 01100001 00100000 a xx in 01000001 16 给变量赋值 chara chari a 97 常量i a 其它变量i i 32 a a a a n i a 101 i x42 01000001 17 给变量赋值 chara A inti 1 floatf 3 14159 i a a 0 x12FE i f 01000001 11111111 a i f 11111111 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 扩充a 高位补0 取低字节 取整 删尾3 00000000 11111110 18 三 组合数据类型 1 指针类型 用处 专门用来存其它变量的地址 5 10111000 chara a intx 100 floatf 3 14 00000100 01100001 00000000 01100100 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 00000000 00000000 10111001 00000100 00000000 00000000 char pc a int pi x float pf f 19 指针的用处 1208 chara a intx 100 char pc 00000000 01100100 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 10111001 00000100 00000000 00000000 1208 97 97 100 a pc pc 0 x pi pi 0 a a 97 1208 1208 20 2 数组类型 4 用处 一次定义多个变量 a inti 1 chara 8 intx 4 printf d a printf d a 5 printf d x i 对待数组元素 就像一般变量 3000 4 65 首地址 21 3 字符串 4 定义 用一对双引号括起来的字符序列 CHINA Howareyou a 用字符型数组存字符串 chara 8 CHINA 隐含0printf s a printf c a 3 结束符0 0 字符与字符串的区别 a a 97 CHINA N printf d a 3000 22 4 结构体类型 7 定义 用struct定义组合类型 structstudent intnum charname 20 charsex intage floatscore charaddr 30 stu3 结构体变量stu1 stu2 stu3的内存结构 structstudentstu1 stu2 23 结构体的使用 structstudent intnum charname 20 charsex intage floatscore charaddr 30 stu3 用 号或 符号 structstudentstu1 stu2 structstudent ps1 ps2 printf d stu1 num printf s stu1 name printf c stu1 sex printf f ps1 score printf d ps2 num printf s ps2 name printf c ps2 sex printf s stu2 addr ps1 24 四 运算符和表达式 C语言的运算符有以下几类 1 算术运算符 2 关系运算符 5 赋值运算符 6 条件运算符 7 逗号运算符 8 指针运算符 9 求字节数运算符sizeof10 强制类型转换运算符 类型 11 分量运算符 和 12 下标运算符 13 其它函数调用运算符 25 例如 a b c 1 5 a 3在表达式求值时 要考虑运算符的优先级别进行 若优先级一样 则考虑 结合性 算术运算符的结合性为 自左至右 优先级别和结合性参考附录 若inta 2 floatb 3 5 intc 4 a b c 1 5 a 3演示上面表达式的计算过程 1 算术运算符和算术表达式 26 自增 自减 运算符作用 使变量的值增1或减1 i i 在使用i之前先使i的值加 减 1 i i 在使用i之后先使i的值加 减 1 对比的差别 j i j i 注意 1 上述两种运算只能用于变量 而不能用于常量或表达式 2 上述两种运算的结合方向是 自右至左 例子 若i 3 则printf d d d i i i 输出结果为 6 4 3 27 从一个表达式的值得到所需的类型中间变量 一般形式为 类型名 表达式 例如 inta 2 floatx 1 0 y 3 14 double a 从a得到double型中间变量2 000000 int x y 从x y的值得到整型中间变量4 int 5 0 3 从5 0的值得到int型中间变量5 在强制类型转换时 得到一个所需类型的中间变量 原来变量的类型不发生变化 类型转换有两种 1 自动类型转换2 强制类型转换 2 强制类型转换运算符 28 赋值运算符 就是赋值运算符 作用就是把数据赋给一个变量 赋值时可进行类型转换如果等号两侧的类型不一致 在赋值时要进行类型转换 1 将实型数据赋给整型变量时 舍去实数的小数部分 2 将整型数据赋给单 双精度变量时 数值不变 但以浮点数形式存储到变量中 3 字符型数据赋值给整型变量 系统将字符处理为带符号的量 则进行符号扩展 4 将一个int short long型数据赋给一个char型变量时 只将其低8位原封不动的送到char变量 截尾 3 赋值运算符和赋值表达式 29 复合赋值运算符在赋值号之前加上其它运算符 可以构成复合的运算符 例如 a 3等价于a a 3x y 8等价于x x y 8 C语言规定可以使用10种复合赋值符 即 赋值表达式例如 a b 5 a 5 c 6 a b 10 c 2 a a a a 30 逗号运算符 它将两个表达式连接起来 其一般形式为表达式1 表达式2 表达式n逗号表达式的求解过程是 从左至右 整个逗号表达式的值是最后那个表达式的值 例如 inta 2 b k a a 5 a 4 a 5 b的值为 k的值 注意 并不是任何地方出现的逗号都是逗号运算符 printf d d d i i i i 函数参数分隔符i 2 4 逗号运算符和逗号表达式 17 11 12 4 12 5 48未用 17作为整个表达式的值 10 10 5 5 2 31 5 关系运算符和表达式关系运算符种类 结合方向 自左向右优先级别 例c a b等效于c a b a b c等效于 a b ca bc等效于a b c 简略繁琐 例inta 3 b 2 c 1 d f a ba b cb cbf a b c 32 关系表达式的值 是逻辑值 真 或 假 用整数1或0表示 表达式值1 1 0 d 1 f 0 printf d 3 2 1 1 33 关系运算注意 例若a 0 b 0 5 x 0 3 则a x b的值为 0 例5 2 7 4在C中是允许的 值为 0 例inti 1 j 7 a a i j 4 0 则a 2 例 a 0结果为 A 100结果为 1 0 34 关系运算注意 例注意区分 与 inta 0 b 1 if a b if a b printf aequaltob elseprintf anotequaltob 例应避免对实数作相等或不等的判断如1 0 3 0 3 0 1 0结果为可改写为 fabs 1 0 3 0 3 0 1 0 1 0e 6 0 35 6 逻辑运算符和表达式逻辑运算符 逻辑运算真值表 C语言中运算量 0表示 假 非0表示 真 运算结果 假 用0表示 真 用1表示 36 优先级 结合方向 例floata 3 14 intb 5 aa ba b a b4 0 25 3 2 8 4 0 c d 值为1 值为0 值为1 值为1 值为1 值为1 值为1 37 短路特性 逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例 inta 2 intb 10 intc 0 0 0 0 38 7 条件运算符与表达式一般形式 expr1 expr2 expr3执行过程优先级13 结合方向 自右向左如a b a c d c d相当于a b a c d c d 先结合不代表先计算 例求a b printf a b d n b 0 a b a b 39 8 求数据字节运算符sizeof 优先级2 可作用在变量名 或类型名上 inti 1000 charch a floatf 3 14159 doubled 0 1 charstr 12 hello chars hello char pc int pi doublexd 5 sizeof i sizeof ch sizeof f sizeof d sizeof str sizeof s sizeof pc sizeof pi sizeof xd 21481264440 sizeof i

温馨提示

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

评论

0/150

提交评论