




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章数据类型和表达式 主要内容 2 1概述2 2常量与变量2 3基本数据类型2 4运算符与表达式2 5数据类型转换 基本类型 整型类型 浮点类型 枚举类型 空类型 派生类型 数组类型 函数类型 指针类型 结构体类型等 各类型包含常量与变量 2 1概述 常量在程序运行过程中 其值不能被改变的量 整型常量 3 0 4 浮点型 实型 常量 4 5 0 0 1 2 字符常量 普通字符 A a 1 转义字符 n t 字符串常量 Cisaprogram 符号常量 2 2常量与变量 符号常量以标识符形式出现的常量 标识符只能由字母 数字和下划线3种字符组成且第一个字符必须为字母或下划线 a c3 B y 2 x1 合法 A B 123 a 2 1x 不合法 2 2常量与变量 例 definePRICE includeintmain intnum1 num2 total1 total2 num1 10 num2 20 total1 num1 PRICE total2 num2 PRICE printf total1 d total1 return0 结果 total1 习惯上 符号常量名用大写 见其名知其意 40 400 符号常量名 30 300 好处 含义清楚 在需要改变一个常量时能做到 一改全改 2 2常量与变量 变量在程序运行过程中 其值可以改变的量 变量的三要素 变量名每个变量有一个名字 作为识别该变量的标识符 变量的值每个变量有一个值 变量的值是随时可以改变的 2 2常量与变量 变量的存储单元每个变量占据一个内存单元 用于存放变量的值 变量名 存储地址 a变量值存储单元 6 2 2常量与变量 变量名的命名规则 变量名必须是标识符 变量名的长度最好不要超过8个字符 见其名知其意 习惯上变量名用小写字母 变量必须先定义后使用 程序中何时使用常量 何时使用变量 根据实际情况以及常量和变量的定义来选择 2 1常量与变量 例 define30 includeintmain int num1 10 num2 20 total1 num1 PRICE total2 num2 PRICE num1 30 printf total1 d total1 return0 符号常量名 变量名 PRICE num1 num2 total1 total2 2 2常量与变量 整型常量即整常数 c的整常数有三种形式 十进制整数与数学中的整数一致 如 100 123 0 八进制整数以0开头的整数 如 010 07 020等 十六进制整数以0 x开头的整数 如 0 x10 0 xff 0 x2a等 2 3 1整型数据 不带小数点的数值是整型常量 整型变量用于存放整数的变量 基本整型 inta 4字节 数值范围 2147483648 2147483647 VC 短整型 shortb 2字节 数值范围 32768 32767 VC 长整型 longc 4字节 数值范围 2147483648 2147483647 VC 双长整型 longlongc 8字节 数值范围 263 263 1 VC int int 2 3 1整型数据 int 变量的值在存储单元中都是以补码形式存储 最高位的一个二进制位代表符号位 无符号型 加上unsigned存放正数和零 最高位的一个二进制位也是数据位 如 unsignedintx unsignedshorty unsignedlongz unsignedlonglongh Yx为无符号基本整型变量 16位全表示数码 数值范围 0 65535 TC 在程序设计中 如果要使用整型变量 必须首先根据实际所需数值的大小选择以上类型符来定义变量 然后才能使用 int int int 2 3 1整型数据 例 includeintmain inta b c a 100 b 50 c a b printf d c return0 定义整型变量a b和c 变量的使用 2 3 1整型数据 字符常量 普通字符用单撇号括起来的一个字符 如 a x 1 等 转义字符以 开头的字符 如 n t 等 2 3 2字符型数据 转义字符 n 换行 将当前位置移到下一行开头 t 水平制表 跳到下一个制表位置 一个制表区占8列 b 退格 将当前位置移到前一列 r 回车 将当前位置移到本行开头 f 换页 将当前位置移到下页开头 代表一个反斜杠字符 代表一个单引号字符 代表一个双引号字符 ddd 1到3位八进制数所代表的字符 xhh 1到2位十六进制数所代表的字符 如 101 代表字符 A x41 代表字符 A 2 3 2字符型数据 由单撇号括起来的单个字符或转义字符都是字符常量 p n l h 例 includeintmain printf ab c t de rf tg n printf h ti b bj k n printf lm tno tp n return0 结果 a b c d e f g i j k m o 2 3 2字符型数据 字符型变量用于存放字符的变量 charc1 c2 定义c1和c2为字符型变量c1 a c2 b 给字符变量赋值字符型变量存放一个字符 占据一个字节 2 3 2字符型数据 字符型数据的存储形式存放ASCII码值如字符 a 在内存中存放 而不是字符 因此 与整数的存储形式一致 它们之间可以通用 一个字符数据既可以作字符用 也可以作整数用 取其ASCII值 如 32 a 相当于32 97若intx charc 则x a c 97 x 97 c a a 97 合法 2 3 2字符型数据 例 includeintmain charc1 c2 inti c1 a i c1 c2 c1 32 printf c d n c1 c1 return0 结果 a 97 字符型数据可以以字符形式和整型形式输出 字符型数据和整型数据可以相互赋值 字符型数据和整型数据可以直接进行运算 注 字符型数据的ASCII值的范围为0 255 2 3 2字符型数据 字符串常量用双撇号括起来的字符序列 如 abcde china a 也属字符串 注意 a 与 a 的区别 对于 charc c a 用法错误 2 3 2字符型数据 字符串中每个字符各占一个字节 并且在字符串结尾加上一个结束标记 0 以便系统根据 0 判断字符串是否结束 0 是空操作字符 即它不引起任何控制动作 也不是一个可显示字符 如 china 在内存中占6个字节 china 0C语言中有专门的字符串变量 可用字符数组存放 以后介绍 2 3 2字符型数据 浮点型常量可使用两种形式表示 十进制小数形式 如1 23 0 0 15 48 指数形式 如1e 201 23E5注 字母e 或E 之前必须有数字 且e 或E 后面的指数必须为整数 e 不合法 1e2 5 e3 2 3 3浮点型数据 凡以小数形式或指数形式出现的实数 是浮点型常量 浮点型变量用于存放实数的变量 单精度floata b 定义a和b为单精度型变量 双精度doublex y 定义x和y为双精度型变量 长双精度型longdoublem 定义m为长双精度型变量 在程序设计中 如果要使用浮点型变量 必须首先根据实际所需数值的大小选择以上类型符来定义变量 然后才能使用 2 3 3浮点型数据 例 include definePI3 1415926intmain floatr c r 5 c 2 PI r printf f c return0 定义浮点型变量r和c 变量的使用 2 3 3浮点型数据 一般根据什么原则选择变量的类型 根据实际应用的需求来选择变量的类型 例如 i float c int char f 2 3 3浮点型数据 基本的算术运算符 模运算符或求余运算符 两个整数相除的结果为整数 多数C编译系统采用 向零取整 的方法 即去尾法 如 5 3的值为1 7 3的值为 2 两侧均应为整型数据 如 7 4的值为3 2 4运算符与表达式 算术表达式用算术运算符将运算对象连接起来的式子 用于表达数学公式的式子 如 2 x y 1 a表达式经过运算最终得到一个值即算术表达式的值 2 4运算符与表达式 运算符的优先级与结合性 优先级在对表达式求值时 如果存在多个运算符 则运算的先后次序按运算符的优先级别从高到底进行 运算符的优先级关系为 高 低 如 a 2 x先算 2 a 2 有括号的情况 2 4运算符与表达式 结合性如果在一个运算对象两边的运算符的优先级相同 则按规定的 结合方向 处理 如 a b cb与 结合是从左到右 称 左结合性 b与 结合是从右到左 称 右结合性 每个运算符都有相应的优先级和结合性 基本算术运算符都是左结合性 2 4运算符与表达式 计算下列表达式 2 A 1 2 01 3 2 1 要计算表达式的值 首先考虑运算符的优先级 先算优先级高的在算优先级低的 如果优先级相同 再考虑运算符的结合型 2 4运算符与表达式 构造表达式 a ba b a ba bx yx y 2 x x 3 x 1 不能省 a b a b x y x y a b a b x y x y a b a b x y x y 2x2 3x 1 a b a b a b a b 2 4运算符与表达式 赋值运算符 称赋值运算符 其作用是将一个数据或表达式赋给一个变量 如 a 5不要理解为 等号 执行赋值运算的结果 是将右边的数据存入左边变量所对应的内存单元中 2 4运算符与表达式 复合赋值运算符在赋值运算符前加上其它运算符 可以构成复合赋值运算符 a 3b x 5x c 6y a 4k b 2属于高效率运算符 a a 3 k k b 2 b b x 5 x x c 6 y y a 4 2 4运算符与表达式 赋值表达式主要实现赋值运算的表达式 一般形式 如 a 5y 2 x 3a a 1不是衡等作用 将右边表达式的值赋给左边的变量 赋值表达式的值取左边变量的值 2 4运算符与表达式 赋值表达式右边的可以是任何表达式 如 a b 5 赋值表达式中包含赋值表达式赋值运算符的优先级低于所有算术运算符 且是右结合性 a b 5 与a b 5等效 2 4运算符与表达式 例 计算以下表达式的值 a b c 5a 5 c 6 a b 4 c 6 a b 4 5 c 6 5 a b c为整型变量 表达式的值为5 a的值为5 b的值为5 表达式的值为11 a的值为11 c的值为6 表达式的值为10 a的值为10 b的值为4 c的值为6 表达式的值为10 a的值为10 b的值为4 c的值为6 2 4运算符与表达式 a 3 5 4 3a a a a 设a的原值为3 分析 a a a即a a a a即a 6 a 6即a a 6 即a 12则表达式的值为 12 a的值为 12 表达式的值为12 a的值为12 y y m y m 5 y 2 求表达式的值和y m的值 2 4运算符与表达式 赋值过程中的类型转换如果赋值运算符两侧的类型不一致 则在赋值时要进行类型转换 转换规则为 实型 整变量舍去小数部分 inta 5 5 a的值为5 整型 实变量数值不变 以浮点形式存储 字符型 整变量放在整形变量低8位 保持原值不变原则 inta A 2 4运算符与表达式 强制类型转换可以用强制类型转换运算符将一个表达式的值转换成所需类型 其一般形式为 类型名 表达式 如 int x y int x y float 7 3 2 4运算符与表达式 应用举例 floatf inta b a f b 可知 有自动转换和强制转换 当自动转换达不到目的时 可用强制转换 a int f b 2 4运算符与表达式 自增 自减运算符自增运算符 使变量值加1自减运算符 使变量值减1两种用法 i i先加 减 后使用i i 先使用后加 减 两种用法对i效果一样 但表达式的值不同 例 假设i的原值为5 j i i i 1 j i j i j i i i 1 i i 1 j i j i i i 1 j i j i 2 4运算符与表达式 注意 和 只能用于变量 如 3 和 a 1 不合法 和 优先级相同 结合型为右结合性 i 若i的原值是3 则该表达式的值是多少 i的值是多少 i 3 4 和 运算符的优先级高于算术运算符 2 4运算符与表达式 例 分析执行下列语句后的结果 a 5 b a c a b d a b c c a b d 6 7 1 2 5 5 5 6 6 0 2 4运算符与表达式 两种特殊情况 k i i i i j是i j 还是 i j i 虽然与i i 1等效 但使用自增自减运算符的代码优化程度好 因而经常使用 但用时需特别小心 总之 不要写出别人看不懂 也不知道系统怎样执行的程序 若i的初值为3 则有的系统得到该表达式的值为12 有的系统得到该表达式的值为9 若想结果为12可改写如下 a i b i c i k a b c 2 4运算符与表达式 也是一种运算符 用它对两个表达式实现连接运算 3 5 6 8称逗号表达式 逗号表达式的一般形式 表达式1 表达式2求解过程 先求表达式1 在求表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智慧农业行业技术创新与市场前景研究报告
- 2025年清洁能源行业市场前景预测报告
- 固定铰支座课件
- 2025年生物科技行业生物信息学应用前景研究报告
- 国家事业单位招聘2025中外文化交流中心招聘2人笔试历年参考题库附带答案详解
- 国家事业单位招聘2025中国建筑文化中心招聘应届毕业生3人笔试历年参考题库附带答案详解
- 内江市2025上半年四川内江市威远县人力资源和社会保障局考核招聘事业单位人员1人笔试历年参考题库附带答案详解
- 万州区2025二季度重庆万州事业单位招聘222人笔试历年参考题库附带答案详解
- 2025重庆市大足区国衡商贸股份有限公司招聘大足区环境卫生工作人员12人笔试参考题库附带答案详解
- 2025浙江湖州市安吉县产业投资发展集团有限公司下属子公司招考14人笔试参考题库附带答案详解
- 首台套申报培训课件
- 中药药剂员职业考核试卷及答案
- 2025年脚手架租赁合同3篇
- 2025国家统计局济宁调查队城镇公益性岗位招聘3人备考题库及答案解析
- 万科企业股份有限公司员工职务行为准则
- 幼儿园教学课件《半条棉被》课件
- 一建市政记忆口诀
- 阀门系数Cv和KV值计算表格(带公式)
- PETS公共英语二级大纲词汇
- 消控室制度上墙
- LED屏幕施工方案
评论
0/150
提交评论