数据类型表达式.ppt_第1页
数据类型表达式.ppt_第2页
数据类型表达式.ppt_第3页
数据类型表达式.ppt_第4页
数据类型表达式.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

第3章最简单的C程序设计 1 数据类型 运算符与表达式 一 C语言的保留字和标识符二 基本数据类型1 常量和变量的概念2 整型 浮点型 字符型 字符串3 变量的初始化三 算术运算符和算术表达式四 自增 自减运算符五 赋值运算符和赋值表达式六 表达式中不同数据类型的混合运算七 补充 逗号运算符和逗号表达式 一 C语言的保留字和标识符 保留字 C语言规定的具有特定意义的字符串 也称关键字 C语言的保留字 关键字 共有32个 C89 教材365页附录BC语言中的关键字 第3版 C语言的保留字 关键字 共有37个 C99 教材378页附录CC语言中的关键字 第4版 标识符 用来标识变量名 符号常量名 数组名 类型名 函数名等的有效字符序列 C语言对标识符的规定 1 只能由字母 数字 下划线组成 且第一个字母必须是字母或下划线 2 长度 在TC中最多允许32个字符 建议不要超过8个VC 255 例 如果系统规定标识符长度为8 那么x1234567ABC和x1234567XY会被视为同一标识符 标识符中应注意的问题 标识符命名时应有意义 尽量做到见名知义 如longth用来表示长度 time用来表示时间 PI用来表示圆周率 在C语言中 标识符大小写敏感 如ABC aBC abc分别代表3种不同的标识符 标识符不能与C语言的保留字 系统标准库函数同名 为合法标识符 yes 123gotoa 80 if programto tofile 2ab1 c3 为非法法标识符 含有不合法字符 出现非法字符 标识符中不允许有空格 第一个字符不能为数字 与关键字相同 二 基本数据类型 第3版C89 二 基本数据类型 第4版C99 派生类型 数组类型 结构体类型 struct 共用体类型 union 函数类型 枚举类型 enum 复数浮点型 float complex double complex longlong comple 基本整型 int 短整型 shortint 长整型 longint 双长整型 longlongint 字符型 char 布尔型 bool 1 常量和变量的概念 常量 在程序执行的整个过程中 其值不能改变的量 字面常量或直接常量 直接以值的形式出现的常量 如100 整型常量 0 5 实型常量 a 字符常量 boy 字符串常量 符号常量 用标识符表示的常量 definePRICE30voidmain intnum total num 10 total num PRICE printf total d total 定义符号常量PRICE 代表30 哪些是保留字 哪些是标识符 变量 在程序执行的过程中 其值可以改变的量 如y x 5 其中x和y都是变量 y随着x的值不同而不同 注意 变量代表内存中具有特定属性的一个存储单元 用来存放数据 即变量的值 x 10 存储单元 即变量 变量名 存储空间的名字 通过它对存储空间进行访问 是一个标识符 通常用小写字母表示 变量的值 存储单元中存储的数值 变量x的值是10 变量类型 决定存储单元的大小整型变量 实型变量 字符型变量等 变量的特征 变量名 变量的值 变量的类型 注意 C语言规定 变量必须先定义 后使用 变量的定义语句 类型说明符变量名1 变量名2 例 intx 定义整型变量xinta b 定义两个整型变量a b 类型说明符和变量名之间要用空格隔开 注意 以下变量定义形式是错误的inta intb inta b 2 整型 1 整型常量十进制整型 能出现数字0 9 可带正负号如 0 11 95 2八进制整型 以数字0开头的数字串 能出现数字0 7如 011 十进制9 0111 十进制73 十六进制整型 以0 x开头的 能出现数字0 9 字母a f或A F如 0 x11 十进制17 0 xa5 十进制165 下列常量错在哪儿 028 123a o12 2 整型变量 说明 数据类型所占字节数随编译系统的不同而不同 24 整型数据在内存中以补码表示 对有符号数 最高位为符号位 其余位为数值位eg 用一字节表示有符号数 对无符号数unsigned 全部位都为数值 整型变量举例 为了保存年龄 shortage 或unsignedshortage intage longage 为了保存一个城市人口 intpeople 或longpeople unsingedpeople unsignedlongpeople 要保存全球的人口 intcount 60亿 超出int或long类型的范围 整型变量举例 includevoidmain inti j 定义整型变量i j i 1 分别给整型变量i j赋值 j 2 printf i d j d i j 按十进制格式输出整型变量i j的值 注意 整型常量也分类别如 100 是int型常量123u 89U 是unsigned型常量0l 34L 是longint型常量参考P41整型变量的分类 第3版 参考P44整型变量的分类 第4版 3 浮点型 实型 十进制小数形式 由数字与小数点组成 必须有小数点 如1 23 123 0 0123 0 0 指数形式 如123e3或123E3都代表123 103注意字母e或E之前必须有数字 后面必须是整数 1 浮点型常量 E 5 1234e1 2 6 5E 为合法的浮点型常量 为非法的浮点型常量 如 1E 5 1234e12 2 e0 6 5E 15 2 浮点型变量 实型变量举例 保存商品的单价 总价 floatprice total 保存精确的计算结果 精确到10位有效数字 doubleresult 浮点型变量举例 includevoidmain floata b 定义单精度浮点型变量a b doublec 定义双精度浮点型变量c a 123 45 分别给浮点型变量a b c赋值 b 32 56 c 123 45 printf a fb fc f a b c 输出a b c的值 注意 浮点型常量也分类别 如 123 3 是double类型34 5f 8 9F 是float类型 4 字符型 1 字符常量 分为两类用单撇号括起来的一个字符如 a 9 空格 是合法字符常量 a 99 是非法字符常量 转义字符 以 反斜杠 开头的特殊形式的字符 如 n r 123 x3b 转义字符功能 n回车换行符 光标移到下一行行首 r回车不换行 光标移动到本行行首 t横向跳格 8位为一格 光标跳到下一格起始位置 如第9或17位等 b退一格 光标往左移动一格 f走纸换页 将当前位置移到下页开头 用于输出反斜杠字符 用于输出单引号字符 用于输出双引号字符 ddd1到3位八进制数ddd对应的ASCII码字符 xhh1到2位十六进制数hh对应的ASCII码字符 a警告 产生声音或视觉信号 一个问号 输出此字符 v垂直制表符 将当前位置移到下一个垂直制表对齐点 课堂练习 183 w b x1b 正确的字符常量是 正确的是 x1b 不能有8 没有这样的转义字符 字符常量不用双引号 2 字符变量 char 占1个字节空间 只能存放一个字符 存储特点 在字符变量中实际上存储的是字符的ASCII码 其存储形式与整数的存储形式相同 例如 charc1 c2 c2 a 定义了字符型变量c1 c2 把 a 存放到c2中 如 A 65 B 66 Z 90 a 97 b 98 z 122 0 48 1 49 9 57 注意 1 字符数据与整型数据可相互赋值 直接运算 例inta x charc a D a 68 x A 5 x 65 5 s G s 33 71 c 97 c a 2 大小写字母转换小写字母减32得到相应的大写字母 如 a 32得到 A 大写字母加32得到相应的小写字母如 B 32得到 b 3 字符 1 和整数1是不同的概念 字符 1 只是代表一个形状为 1 的符号 在需要时按原样输出 在内存中以ASCII码形式存储 占1个字节1是十进制整数 是int型整数 字符常量与字符串常量不同 5 字符串常量定义 用一对双撇号 括起来的字符序列 如 hello Mary aaa n 存储 每个字符串尾自动加一个 0 作为字符串结束标志 例 charch ch A 练习 printf You remygoodfriend n 在显示器上输出什么 You remygoodfriend 5 变量赋初值 格式 类型说明符变量1 常数1 变量2 常数2 例 inta 2 floatdata 3 67 charch A intx 1 y 1 z 1 intx y z 1 语法错误 intm 10 n 被定义的变量的一部分赋初值 变量赋初值是指在定义变量时给变量赋值 这个值称为变量的初值 三 算术运算符和算术表达式 1 算术运算符 算术运算符用于各类数值运算 基本的算术运算符 正 负号运算符 取余 只需要一个运算对象 单目运算符 除法运算符 进行求商运算 对于不同类型的运算对象 除法表达式计算结果的类型也会不同 例 计算x y如果x y是整型 则结果为整型 小数部分被略去 5 2结果为2 整型量2 5结果为0 整型量如果x y其中一个为浮点型量 则结果为浮点型5 0 2 0结果为2 5 是求余运算 a b计算a除以b后的余数 也是a模b的值 它要求两个运算对象必须是整型 其结果也是整型量 例 5 2结果为12 5结果为210 3 0语法错误 扩充 和 的非常常用的用法 求一个整数各位上的数字 例如 对任意一个三位数n 分别求出个 十 百位上的数字 eg n 456个位 456 10得到6十位 456 10 10 或456 100 10 得到5百位 456 10 10 或456 100 得到4 2 算术表达式用算术运算符和括号将运算对象 操作数 连接起来的 符合C语法规则的式子 称为C算术表达式 如 1 3 5 2 10 x y 3 6 a 表达式的值表达式的运算结果 一般数学式 a b c d ac 算术表达式 a b c d a c将方括号改成圆括号 不能省略 x x y 1 0 x y 其中不能出现分数 改用除法运算符 圆括号不能缺少 3 14159 r r 2 0其中为非字母字符 要用浮点型常量代替 例 将数学公式改为算术表达式 3 算术运算符的优先级和结合性优先级 高 低 2 3 4 注意 可以用 来改变运算的顺序 如 3 5 8 4 0 2 结合性 运算符的 结合性 决定同优先级的运算符对操作数的运算次序左结合性 自左向右运算右结合性 自右向左运算 为左结合性例如 a b c d根据左结合性 等价于 a b c d 求负值运算 为右结合性 四 自增 自减运算符 类别 单目运算 运算优先级为2 运算符 使变量的值增1 使变量的值减1 运算规则 后缀i i 前缀 i i 结合性 右结合 例如 intmain intx m n x 10 m x n x return0 该语句执行后 m 10 x 11 该语句执行后 n 12 x 12 例j 3 k j j 3 k j j 3 printf d j j 3 printf d j a 3 b 5 c a b a 3 b 5 c a b k 4 j 4 k 3 j 4 4 3 c 20 a 4 c 15 a 4 自增 自减运算只能用于变量 不能用于常量和表达式 注意 例 6 a b 均为非法的运算 自增 自减运算符高于基本算术运算符 自增 自减运算符的运算顺序 五 赋值运算符和赋值表达式 1 简单赋值运算符运算符 表达式格式 变量 表达式优先级 14 低于算术运算符结合性 右结合运算规则 把 右边表达式的值赋给左边变量 说明 赋值运算符左边必须是变量而不能是表达式 赋值表达式的值是赋值号左边变量被赋值后的值 例 j 3 ja b c 4 例 x 5表达式的值为5 赋值表达式 8 x 4 表达式值是12 算术表达式 如果赋值号两边的类型不一致 则将赋值号右边表达式的值的类型转换成赋值号左边变量的类型 赋值语句可以连续进行 例 a b c 0 根据右结合性 该表达式等价于 a b c 0 例inti i 2 56 结果i 2 例floatf inti i 10 f i 则f 10 00000 2 复合赋值运算 算术运算符 和赋值运算符 结合起来 形成复合赋值运算符 加赋值运算符 如a 3 等价于a a 3 减赋值运算符 如a b 3 等价于a a b 3 与此类似 注意 复合运算符在书写时 两个运算符之间不能有空格 复合赋值运算符的结合性和优先级等同于简单的赋值运算符 复合运算符左边必须是变量 复合运算符右边的表达式计算完成后才参与复合赋值运算 表达式中不同数据类型的混合运算 当表达式中的数据类型不同时 要进行类型转换 转换方式自动 隐式 转换 系统自动把数据由低级类型向高级转换 强制转换 将表达式的运算结果强制转换成指定的数据类型 如下表达式是合法的 1 3 14159 0 A 自动转换规则 横向必做 纵向选做 例 数据类型自动转换实例 有如下变量类型 charc inti floatf doubled 计算表达式 c f i d charfloatintdouble c f i d int double double double 该表达式值的类型是double类型 double double double 强制类型转换运算符 类型名 格式 目标类型名 表达式 注意 1 强制转换属单目运算 运算优先级为2 2 强制转换得到的是中间变量类型 原变量类型不变 如 intn floatx 1 5f n int x 强制转换后n的值是1 而x仍然是1 5 类型是float 例 intx 2 y 3 floatz 1 6f float x y 将x y的值转换为float类型 得5 0 int

温馨提示

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

最新文档

评论

0/150

提交评论