C++语言基础

上传人:资****亨 文档编号:129862128 上传时间:2020-04-23 格式:PPT 页数:496 大小:1.64MB
返回 下载 相关 举报
C++语言基础_第1页
第1页 / 共496页
C++语言基础_第2页
第2页 / 共496页
C++语言基础_第3页
第3页 / 共496页
C++语言基础_第4页
第4页 / 共496页
C++语言基础_第5页
第5页 / 共496页
点击查看更多>>
资源描述

《C++语言基础》由会员分享,可在线阅读,更多相关《C++语言基础(496页珍藏版)》请在金锄头文库上搜索。

1、 C 语言基础 盐城工学院惠为君 C 概述 C 的特点发展历史和未来 C C AT T Java SUN C MS 与其它语言比较 7点 面向对象的概念 数据的封装和隐藏 继承 多态VC上机过程 C 的字符集 C 语言使用下列基本字符来构成词法单位 结束 第二章 数据类型运算符表达式 2 1VC 的数据类型计算机所处理的数据以一定形式存放在内存中 数据的存储方式以及能够进行的合法运算都与数据类型直接相关 C 的特点之一就是提供了丰富的数据类型 以便处理各种不同的数据 数据类型总是与运算封装在一起 本质上是面向对象的 本章将简要介绍C 中的数据类型及相关运算 以及常量 变量 表达式 语句等 最后

2、介绍简单的输入输出方法 2 1 1关键字 2 1 2标识符 标识符 Identifier ID 是程序员定义的 单词 用来给变量 常量 数据类型 函数等命名 合法标识符由字母或下划线开始 由字母 数字 下划线组成 其有效长度为1 31个字符 长度超过31个字符者只识别前31个字符 VC 标识符长度为1 247个字符 建议使用有一定含义的英文单词或拼音序列作标识符 以提高可读性 另外尽量不用下划线或双下划线打头 以免与系统定义的关键字冲突 ok 标识符 例 判断下面哪些是合法的标识符 MyFile Salary94 amount void 94Salary Salary94 amount f3

3、5 Num of Student 2 1 2结束 2 1 3标点符号 标点符号包括 等 标点符号的作用 有一定的语法意义 如字符和字符串常量分别用 和 引起来 对语法符号起分隔作用 如 等 2 1 3结束 2 1 5C 的基本数据类型 ok C 对基本数据类型也分别进行了封装 称为内置数据类型 内置数据类型不仅定义了数据类型 还定义了常用操作 本节仅介绍各种基本数据类型的定义 常用操作将在后面介绍 C 为强类型语言 所有数据的使用严格遵从 先说明后使用 的原则 以便编译器进行编译 整型用来存放整数 整数 有符号的整数 在内存中存放的是它的补码 无符号数没有符号位 存放的就是原码 整数占用的字节

4、数与机型有关 32位机上占用4个字节 字符型用来保存字符 存储的是该字符的ASCII码 占用一个字节 如大写字母A的ASCII码为65 在对应的一个字节中存放的就是65 字符型数据从本质上说也是整数 可以是任何一个8位二进制整数 由于汉语系字符很多 用ASCII字符集处理远远不够 因此又创立了双字节字符集 DBCS double bytecharacterset 每个字符用两个字节来编码 为便于软件的国际化 国际上一些知名公司联合制定了新的宽字节字符标准 Unicode 该标准中所有字符都是双字节的 不同的语言和字符集分别占用其中一段代码 这种用统一编码处理西文 中文及其它语言符号 就是uni

5、code码 C 同时也支持宽字符类型 wchar t 或称双字节字符型 实型和双精度型都用来存放实数 两者表示的实数精度不同 实数在内存中以规范化的浮点数存放 包括尾数 数符和阶码 数的精度取决于尾数的位数 32位机上实型为23位 因规范化数的数码最高位恒为1 不必存储 实际为24位 双精度为52位 逻辑型也称布尔型 其取值为true 逻辑真 和false 逻辑假 存储字节数在不同编译系统中可能有所不同 VC 6 0中为1个字节 布尔型在运算中可以和整型相互转化 false对应为0 true对应为1或非0 无值型主要用来说明函数的返回值类型 将在函数一章中具体介绍 基本数据类型还可以加上一些修

6、饰词 包括 signed 有符号 unsigned 无符号 long 长 short 短 参见下表 2 2结束 VC 中所有基本数据类型 2 1 6常量 在程序的执行过程中 值保持不变的量称为常量 字面常量 指程序中直接给出的量 常量的值在程序执行过程中保持不变 并且存储在程序区 而非数据区 根据取值和表示方法的不同 可分为以下几种 a 整形常量 d 字符串常量 c 字符型常量 b 实型常量 ok a整型常量 十进制表示法 八进制表示法 十六进制表示法 其他表示法 即整数 可以有多种表示方法 ok 整数的十进制表示方法 十进制表示与我们熟悉的书写方式相同 如15 24 ok 整数的八进制表示

7、八进制表示以0开始 由数字0 7组成 用来表示一个八进制数 如 012 八进制数12 即十进制数10 0655 八进制数 655 即十进制数 429 ok 整数的十六进制表示 十六进制以0X 大小写均可 开始 由数字0 9和字母A F 大小写均可 组成 用来表示一个十六进制数 以下是一些常整数的例子 0 x32A 十六进制数32A 即十进制数810 0 x2fe0 十六进制数 2fe0 即十进制数 12256 ok 整数的其他表示方法 整型常量还可以表示长整数和无符号整数 长整型常数以L或l结尾 无符号常整数以U或u结尾 以UL或LU 大小写均可 结尾则可表示无符号长整型常数 例如 84L 十

8、进制长整数 84026U 八进制表示的无符号整数260X32LU 十六进制表示的无符号长整型数32 整数结束 b实型常量 1 一般形式与平时书写形式相同 由数字0 9和小数点组成 例如 0 23 125 760 0 46 35 2 指数形式 也称为科学表示法 表示为尾数乘以10的次方形式 由尾数 E或e和阶数组成 指数形式要求在E或e前面的尾数部分必须有数字 后面的指数部分必须为整数 例 判断下列表示是否合法 123E12 34e 2 E4 1 43E3 5 包含小数点和10的幂的数为实型常量 有两种表示方法 实数结束 c字符型常量 字符常量是用单引号引起来的单个字符 在内存中保存的是字符的A

9、SCII码值 在所有字符中 有些是可显示字符 通常就用单引号引起来表示 a 字符a 字符 4 字符4 空格字符有些是特殊情况字符 如不可显示的字符等 c 使用转义序列表示方法 如 祥见表2 3 此处略 n 换行 字符 字符常结束 d 字符串常量 字符串常量与字符型常量的区别 字符串常量 a 占两个字节 存放 a 和 0 值为0 x6100 字符型常量 a 占一个字节 存放 a 值为0 x61 2 3 2结束 用双引号引起来的若干个字符称为字符串常量 例如 IamaChinese 123 a 2标识符常量及常量说明符const 用常量说明符const给字面常量起个名字 标识符 这个标识符就称为标

10、识符常量 因为标识符常量的说明和引用形式很像变量 所以也称常变量 例如 constfloatPI 3 14159 constintNumber of Student 100 常变量必须也只能在说明时进行初始化 常变量初始化之后 不允许再被赋值 常变量必须先说明后使用 常变量存储在数据区 并且可以按地址访问 编译时系统对常变量进行类型检查 C 建议使用常变量 而尽量不使用字面常量 2 3 3结束 2 1 7变量 1变量说明 2变量赋初值 变量 在程序中是指可以改变值的量 变量必须用标识符进行标识 称为变量名 变量有类型之分 如整形变量 字符变量等 任何变量都必须先说明后使用 一是便于编译程序为变

11、量分配空间 二是便于编译时进行语法检查 变量使用的第一步 是给变量赋初始值 ok 变量说明 在C 中 变量说明的一般格式为 存储类型 数据类型变量名1 变量名2 变量名n 下面是变量说明的几个例子 inti j k 说明三个整型变量i j kfloatx y z 说明三个实型变量x y zcharc1 c2 说明两个字符型变量c1 c2doubledx 说明一个双精度型变量dx 变量说明结束 变量赋初值 1 变量说明时直接赋初值 例如 inta 3 b 4 c 5 floatx 3 0 2 用赋值语句赋初值 严格的说 只有前者可称赋初值例如 floatx e x 3 5 e 2 71828 结

12、束 给变量赋初值称为初始化 有两种方法 2 2基本运算符 对常量和变量进行运算是通过运算符来实现的 常量和变量通过运算符组成C 表达式 由表达式再组成C 语句 运算符是完成对常量和变量进行运算的符号 把参与运算的对象称为操作数 按照要求的操作数的个数 运算符分为单目 一元 运算符 双目 二元 运算符和三目 三元 运算符 单目运算符只对一个操作数运算 如负号运算符 等 双目运算符要求有两个操作数 如乘号运算符 等 三目运算符要求有三个操作数 三元运算符只有一个 1 算术运算符 ok 运算符重载 当两个操作数均为整数时 和 重载为整乘和整除 结果为整数 除法运算后舍去小数取整 如 5 4 结果为1

13、 整数 当两个操作数均为整数 定义为求余运算 也称求模运算 结果为两个整数相除后的余数 如果两个整数中有负数 则先用两数绝对值求余 最后结果的符号与被除数相同 例如6 3 结果为06 7 结果为67 6 结果为1 C 中算术运算应注意数据溢出问题 即运算结果超出对应数据类型的表示范围 编译程序只会对除法运算时除数为0这种情况提示出错 而特别容易溢出的整数的加 减和乘法运算产生溢出的情况 系统不作为错误处理 程序将继续执行并产生错误的计算结果 因此 程序设计者必须在程序中解决检查并处理整数溢出问题 只要有一个操作数是实数 两个操作数均转换为double型 和 重载为普通的乘和除 结果是实数 5

14、4 0 结果为1 25 实数 2 关系运算符和逻辑运算符 ok 关系运算符都是二元运算符 包括 大于 不小于 小于 不小于 等于 和 不等于 关系运算符完成两个操作数大小的比较 结果为逻辑值true 真 或false 假 每种可比较大小的数据类型 都重载了关系运算符 不同类型 自动转换为同一类型后 采用对应关系运算符进行比较 在C 中这两个逻辑值与整数之间有一个对应关系 真对应1 假对应0 反过来 0对应假 非0整数对应真 所以关系运算结果可以作为整数参与算术运算 关系运算 逻辑运算及其他运算 2 关系运算符和逻辑运算符 设有定义floata 3 2 intb 5 则 3 a b 结果是 根据

15、右结合原则其运算过程如下 a 5 b 3 2 3 F 即0 F即0 逻辑运算符 逻辑运算符用来进行逻辑运算 其操作数和运算结果均为逻辑量 运算结果同样可以作为一个整数参与其他运算 由于逻辑值和整数之间的对应关系 也允许整型和字符型操作数进行逻辑运算 21 0 逻辑与 21与0 结果为假 021 0 逻辑或 21或0 结果为真 1 21 逻辑非 21的非 结果为假 0 逻辑运算符 位运算符 1 按位取反运算符 2 左移运算符 4 按位与运算符 5 按位或运算符 6 按位异或运算符 ok c 语言提供字位运算 它对操作数的各个位进行操作 1 按位取反运算符 将操作数的每个二进制位取反 即1变为0

16、0变为1 例如 整数a的值为10011011 则 a的值为01100100 2 左移运算符 运算一般格式为 a n其中a为整数 n为一个正整数常数 语义为将a的二进制数依次向左移动n个二进制位 并在低位补0 左移n位相当于乘以2的n次方 但移位运算的速度比乘法快 3 右移运算符 与左移运算符类同 将左操作数向右移动右操作数指定的二进制位数 忽略移位后的小数部分 并在高位补0 一个整数右移n位相当于除以2的n次方 但比除法快 在VC 6 0中有符号数右移时高位补符号位 严格对应除法 以上三种单目运算不影响数据本身的值 而是只产生一个中间量 这个中间量被引用后即不再存在 4 按位与运算符 将两个操作数的对应位逐一进行按位逻辑与运算 运算规则为 对应位均为1时 该位运算结果为1 否则为0 例如 a01001101b00001111a b00001101该运算可用来将整数的某些位置0 而保留所需要的位 上例保留了低四位 5 按位或运算符 将两个操作数的对应位逐一进行按位逻辑或运算 运算规则为 只要有一个数对应位为1 该位运算结果即为1 两个数对应位均为0 该位结果为0 例如 a01001101

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号