已阅读5页,还剩78页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章C 基本数据类型与表达式 内容概览 C 数据类型常量变量运算符表达式 2 1C 数据类型 C 数据类型概述区分数据类型的目的基本数据类型 2 1 1C 数据类型概述 计算机的基本功能是进行数据处理 数据处理的基本对象是数据 为了规范数据的运算与存储 C 对所有数据都赋予一种属性 称作数据类型 C 数据类型分为基本数据类型与构造数据类型 基本数据类型是C 预定义的数据类型 是构成C 类型数据体系的基础 构造数据类型是程序员根据需要自定义的复杂数据类型 1 区分数据类型可规范运算C 中的某些运算只能允许特定种类的数据参与 2 区分类型可以分配正确的存储空间程序中使用的数据要存储在变量中 变量的实质是内存单元 2 1 2区分数据类型的目的 2 1 3基本数据类型 整型 说明符为int 字符型 说明符为char 浮点型 又称为实型 说明符float为单精度浮点型 double为双精度浮点型 空值型 说明符为void 用于函数和指针 C 的基本数据类型 2 2常量 数值常量字符型常量字符串常量转义字符换码序列常量符号常量和const常量 2 2 1数值常量 整型常量实型常量 1 整型常量 1 十进制常量 2 八进制整型常量 3 十六进制整型常量 2 实型常量 实型常量又称为浮点型常量 在C 语言中 实型常量只能使用十进制 1 实型常量有两种表示形式 小数形式和指数形式 2 实型常量的分类 实型敞亮分为单精度 双精度和长双精度 2 2 2字符型常量 字符常量的使用说明 单引号只是作为字符常量的定界符 不属于字符常量本身 两个单引号括起来的字符不能是单引号和反斜杠 即 和 是错误的 字符常量具有数值 字符常量的值就是该字符的ASCII代码值 2 2 3字符串常量 字符串常量的构成字符串常量的存储形式字符串常量与字符常量的区别空字符串字符串结束标志 1 字符串常量的构成 用双引号括起来的一串字符称为字符串 例如 hello ABC 123 均为正确的字符串 说明 双引号仅作为字符串的定界符 并不属于字符串常量本身 字符串中的字符不能是双引号和反斜杠 2 字符串常量的存储形式 字符串常量在内存中存储时 自动在其尾部追加一个NULL字符 其ASCII代码是0 NULL字符常常用 0 表示 长度为n的字符串常量 在内存中占用n 1个字节的存储空间 3 字符串常量与字符常量的区别 字符串常量与字符常量在表示形式和存储形式上是不同的 例如 B 和 B 是两个不同的常量 字符 B 存储时只占一个字节 即其ASCII码66 而字符串 B 存储时占两个字节 即 B 的ASCII码66与NULL的ASCII码0 4 空字符串 空字符串表示不包括任何字符的字符串 用一对紧挨着的双引号表示 它在内存中占用一个字节 用于存储NULL 注意空串 与 的区别 后面的字符串不是空串 而是包含了空格符的字符串 5 字符串结束标志 由于字符串的长度不定 因此系统自动在字符串尾部自动添加一个NULL字符 作为字符串结束的标志 该标志将作为访问字符串时判别是否继续操作的依据 2 2 4转义字符 转义控制符需要转义表示的字符转义方法 1 转义控制符 C 中使用 符号作为转义控制符 其作用是 将其后面的字符转义 使该字符代表其他含义 例如 t 代表跳格 b 代表退格等 2 需要转义表示的字符 需要转义的字符包括两类 1 键盘上不包括的字符 2 被C 语法借用的字符 3 转义方法 1 转义控制符加特定字符 例如 b t 等 2 转义控制符加八进制或十六进制数 为了更广泛使用转义方式表示字符 C 语法规定可以使用转义控制符加ASCII码的方式表示字符 2 2 5符号常量与const常量 符号常量const常量使用符号常量与const常量的优越性 1 符号常量 1 符号常量的预处理符号常量的预处理又称为不带参数的宏定义 符号常量在使用之前必须预先定义 其定义的一般形式如下 define符号常量常量其中 符号常量又称为宏符号或宏名 2 符号常量的使用说明 预处理命令只能定义一个符号常量 预处理命令应放在程序的开头 符号常量一经定义 即可在程序中代替常量使用 2 const常量 const常量是C 提供的常量定义方法 其定义的一般形式如下 const 例如 constdoublepi 3 141592653 3 使用符号常量与const常量的优越性 使用符号常量与const常量的优越性在于 1 可以使用容易识别的符号代替一个常量 增加程序的可读性 2 提高程序的可修改性 2 3变量 变量声明和变量的地址变量的分类变量的声明实例变量的初始化 2 3 1变量声明和变量的地址 变量声明变量的地址 1 变量声明 1 变量的命名 2 变量声明 2 变量的地址 在程序运行时 变量的数值存储在一定的存储空间中 变量内存空间的首字节的地址 称为该变量的地址 在C 语言中 变量的地址用变量名前加 符号表示 2 3 2变量的分类 2 3 3变量的声明实例 整型变量实型变量字符变量 1 整型变量 整型变量用于存放各种整型数据 整型变量使用整型数据类型标识符进行声明 例如 inta b 声明了整型变量a bunsignedshortk 声明了无符号短整型变量k 2 实型变量 实型变量用于存放实型数据 实型变量分为单精度型 双精度型和长双精度型 声明如下 floata b 说明a b为单精度实型变量 doublex y 说明x y为双精度实型变量 3 字符变量 字符变量用于存放字符数据 一个字符变量只能存放一个字符 字符变量分为字符型 有符号字符型和无符号字符型 例如 charch1 ch2 声明ch1和ch2为字符型变量 各可存放一个字符ch1 a ch2 b 将字符a赋给变量ch1 将字符b赋给变量ch2 2 3 4变量的初始化 变量在被声明的同时可以赋予初值 称为变量的初始化 2 4运算符 算术运算符关系运算符逻辑运算符位操作运算符赋值运算符其他运算符运算符的优先级和结合性 2 4 1算术运算符 普通算术运算符增1和减1运算符 1 普通算术运算符 单目算术运算符 取负 取正 单目运算符的优先级要比双目运算符高 双目算术运算符 相加 相减 相乘 相除 和 取余数 在这五个运算符中 和 优先级比 要高 2 增1和减1运算符 运算符的功能有两个 一是由该运算符组成的表达式具有一定的值 二是由该运算符组成的表达式计算后 其变量值要发生改变 后一种功能并不是所有运算符都具有的 运算符作用于变量有两种方式 一是前缀方式 二是后缀方式 上例中是属于前缀方式 即 运算符作用在变量a的前边 而后缀方式是 运算符作用在变量的后边 同样地 运算符的前缀运算表达式的值为原来变量值减1 后缀运算表达式的值为原变量值 不论前缀运算还是后缀运算变量的值都减1 2 4 2关系运算符 关系运算符都双目的 共有如下6种 大于 小于 大于等于 小于等于 相等 不相等 前面4种的优先级高于后面的两种 2 4 3逻辑运算符 单目逻辑运算符有 逻辑求反 双目逻辑运算符有 逻辑与 逻辑或 其中 逻辑与的优先级高于逻辑或 逻辑求反则是真求反后为假 假求反后为真 逻辑与是两个操作数都为真时结果为真 有一个操作数为假时结果为假 逻辑或是两个操作数都为假时结果为假 有一个操作数为真时结果为真 2 4 4位操作运算符 逻辑位运算符移位运算符 1 逻辑位运算符 单目逻辑位运算符有 按位求反 双目逻辑位运算符有 按位与 按位或 按位异或 在双目逻辑位运算符中 高于 而 又高于 逻辑位运算符实质上是算术运算符 因为用该运算符组成的表达式的值是算术值 2 移位运算符 移位运算符都是双目的 它们是 左移 右移 移位运算符组成的表达式的值也是算术值 2 4 5赋值运算符 C 中赋值运算符是一种具有副作用的运算符 赋值运算符分两种 一是简单的赋值运算符 二是复合的赋值运算符 又称为带有运算的赋值运算符 2 4 6其他运算符 三目运算符逗号运算符sizeof运算符强制类型运算符单目运算符 和 1 三目运算符 C 中仅有一个三目运算符需要三个操作数 它是一种功能很强的运算符 三目运算符格式如下 d1 d2 d3其中 d1 d2和d3是三个操作数 2 逗号运算符 逗号运算符的优先级是所有运算符中最低的 使用逗号运算符 可以将多个表达式组成为一个表达式 例如 d1 d2 d3 d4 3 sizeof运算符 该运算符是用来返回其后的类型说明符或表达式所表示的数在内存中所占有的字节数的 该运算符有两种使用形式 如下所示 sizeof 类型说明符 或者sizeof 表达式 4 强制类型运算符 该运算符用来将指定的表达式的值强制为所指定的类型 该运算符的使用格式如下 类型说明符 表达式 或者 类型说明符 表达式 5 单目运算符 和 运算符 和 可以作为双目运算符 前面已经讲过了 它们还可以作为单目运算符 表示取地址 表示取内容 运算符作为单目运算符时 它常作用在变量名前 表示取该变量的地址值 例如 inta pa pa a 2 4 7运算符的优先级和结合性 优先级结合性 1 优先级 每种运算符都有一个优先级 优先级是用来标志运算符在表达式中的运算顺序的 优先级高的先作运算 优先级低的后作运算 优先级相同的由结合性决定计算顺序 2 结合性 结合性也指决定运算顺序的一种标志 在优先级相同的情况 表达式的计算顺序便由结合性来确定 结合性分二类 大多数运算符的结合性是从左到右 这是人们习惯的计算顺序 只有3类运算符的结合性是从右到左的 它们是 单目 三目和赋值 2 5表达式 表达式的种类表达式的值和类型算术表达式关系表达式逻辑表达式条件表达式 赋值表达式逗号表达式数据类型的转换 2 5 1表达式的种类 算术表达式逻辑表达式关系表达式赋值表达式条件表达式逗号表达式 2 5 2表达式的值和类型 先确定运算符的功能确定计算顺序 1 先确定运算符的功能 在C 的运算中 有些运算符相同 但是功能不同 因此要先确定其功能 例如 运算符 运算符 运算符等 它们有时是单目运算符 有时是双目运算符 在计算表达式之前一定要分清 2 确定计算顺序 一个表达式的计算顺序是由运算符的优先级和结合性来决定的 优先级高的先做 优先级低的后做 在优先级相同的情况下 由结合性决定 多数情况下 从左至右 少数情况下 从右向左 另外 还应注意 括号可以改变计算顺序 括号的使用可以嵌套 先做内层括号 再做外层括号 2 5 3算术表达式 算术运算的优先级与结合性自增 自减运算的优先级与结合性 1 算术运算的优先级与结合性 算术运算的优先级 括号 函数 取正 负 其中 括号的优先级最高 当出现多重括号时 先执行最内层括号 接着执行外一层 最后执行最外层括号 例如 a b c因为乘运算优先于减运算 所以相当于 a b c 2 自增 自减运算的优先级与结合性 自增 自减运算的优先级与 取正负 的优先级相同 即优先于 乘 除 取模 运算 自增 自减运算的结合方向是 从右至左 的 右结合性 例如 i 如果按左结合性 相当于 i 但这是不合法的 2 5 4关系表达式 由关系运算符连接两个表达式而构成的判断式称为关系表达式 其一般形式如下 表达式1关系运算符表达式2其中 表达式可以是算术表达式 关系表达式 赋值表达式和字符表达式 2 5 5逻辑表达式 用逻辑运算符将关系表达式或逻辑量联接起来的式子称为逻辑表达式 同关系表达式一样 逻辑表达式的值也是一个逻辑量 真 或 假 2 5 6条件表达式 由三目运算符组成的表达式称为条件表达式 条件表达式的值取决于 号前面的表达式的 该表达式的值为非零时 整个条件表达式的值为 号前面的表达式的值 否则为 号后面表达式的值 条件表达式的类型是 号前和后两个表达式中类型高的一个表达式的类型 2 5 7赋值表达式 由赋值运算符组成的表达式为赋值表达式 由于赋值运算符的结合性是从右至左的 因此 C 程序中可出现连赋值的情况 例如 下面的赋值是合法的 inta b c d a b c d 3 2 5 8逗号表达式 逗号表达式的一般形式逗号表达式的使用说明 1 逗号表达式的一般形式 用逗号运算符将两个表达式连接起来的式子称为逗号表达式 逗号表达式的一般形式如下 表达式1 表达式2逗号表达式的计算过程 先计算表达式1 再计算表达式2 表达式2的值是整个逗号表达式的值 例如 逗号表达式30 50 16 8的值为24 2 逗号表达式的使用说明 1 一个逗号表达式可以与另一个表达式组成新的逗号表达式 2 逗号运算符在所有运算符中优先级别最低 2 5 9数据类型的转换 数据类型的自动转换数据类型的强制转换类型转换的使用说明 1 数据类型的自动转换 数据类型的自动转换主要出现在四则运算过程中 当一个表达式中同时具有多种类型的数据时 系统会按照一定的转换规则 实现数据的自动转换 y 100 b 3 14159 128 a 表达式中包括了整型 实型和字符型 进行运算时 不同类型的数据会先转换成同一类型的数据 然后进行运算 2 数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学术论文摘要与关键词的写作及其格式规范
- 厦门大学法学院法律硕士研究生(非法学类)培养方案适用于有专业培养方
- 会计专业毕业论文选题题目参考
- 浅议锅炉“四管”泄漏监测系统
- 公正执法面临的问题及对策
- 文学毕业论文开题报告
- 合并糖尿病脑卒中患者平衡功能优化方案
- 数据分析实际案例
- 电子合同案例分析
- 医学影像读片中的影像组学分析
- 2025年宪法知识竞赛参考培训试题及答案
- 2025秋统编版小学道德与法治四年级上册期末测试卷附答案(共三套)
- 2025年厨房安全教育试卷及答案
- 中国过敏性哮喘诊治指南2025年解读
- 2025雇佣短期驾驶员合同
- (2025年)全市民行检察业务竞赛试题及答案
- 2025云南楚雄州元谋县产业投资集团有限公司员工招聘公17人告笔试历年常考点试题专练附带答案详解试卷3套
- 2025四川宜宾市公用事业服务集团有限公司及其子公司第一批员工招聘26人笔试考试备考试题及答案解析
- 2025年工会年终工作总结范文(5篇)
- 冬季防冻安全课件
- 半导体设备系列介绍
评论
0/150
提交评论