C语言学习教程-数据类型.ppt_第1页
C语言学习教程-数据类型.ppt_第2页
C语言学习教程-数据类型.ppt_第3页
C语言学习教程-数据类型.ppt_第4页
C语言学习教程-数据类型.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第三章 数据类型 运算符与表达式 计算机只能抽象的描述事物 在用程序解决某一个问题时 首先要把程序要处理事物的特性抽象出来 在计算机中用这些抽象出来的特性来代表一个具体的事物 例如 电压和电流的关系 main inti u r printf Pleaseinputthevoltageandresistance n scanf d d 为什么会有数据类型的概念 Datatypeofanobjectdeterminesthesetofvaluesitcanhaveandwhatoperationscanbeperformedonit 对不同类型的数值 计算机的处理方式不同 由于计算机不能自动识别某个数值是属于哪种类型的 所以只好事先对在计算机中使用到的各个数值进行分类 这样不同类型的数值便属于不同的数据类型 在这种情况下 计算机在遇到一个数值时 根据它所属的数据类型就可以采取相应的处理方式而不会产生错误 3 1C语言中的数据类型 数据类型 整型 int 实型 单精度型 float 双精度型 double 字符类型 char 数组类型 结构体类型 struct 共用体类型 union 枚举类型 enum 3 2常量与变量 我们所关心的对象的名称 它是用来表示变量名 符号常量名 函数名 数组名 类型名 文件名的有效字符序列 标识符的命名规则 1 标识符只能用字母 数字 下划线三种字符构成 而且标识符的第一个字符必须是字母或下划线 合法的标识符 obj total screenx sum1 sum2不合法的标识符 D M Ritchie 1sum screen x 标识符 标识符的长度有一定的限制 前8个字符有效teacher name和teacher age将被系统认为是拥有相同的名称的标识符 区分大 小写Student和student系统认为是不同的名称 4 见名知意 选有含义的英文单词 或缩写 做标志符 这是结构化程序的一个特征 count name day month total country5 保留字不能作为标识符如 intcharifelsefor 什么是常量 在程序运行过程中 其值不能被改变的量 2整型常量 3 5实型常量 a 字符型常量 符号常量 用标识符代表一个常量 符号常量不同于变量 它的值在程序运行期间不能被改变 也不能在被赋值 PRICE 40 错误 define为宏定义 define标识符字符串作用 用一个指定的标识符来代表一个字符串 这个标识符称为符号常量 definePRICE30main intnum total num 10 total num PRICE printf total d total 宏定义不能在行末加分号 宏定义通常写在文件开头 函数之前 符号常量名习惯上用大写 使用符号常量的好处 含意清楚一改全改 什么是变量 一个变量有两方面的含义 第一 任何一个变量都有自己的一个名称也就是某一块内存单元的名称 第二 任何一个变量都要占据一块内存单元 存储单元 a 变量名 3 变量值 变量名的命名原则望文生意 见名知意 a1 b c2好吗 Apple num 变量的强制定义规则在 语言中 如果要用到变量 则必须先对变量进行类型定义 然后才能使用 这就叫做 强制定义 为什么要进行 强制定义 呢 1 可以使程序中的变量使用不发生错误比如在定义部分intteacher 而在程序中写成teaeher 300 在对程序进行编译时会查出teaecher没有定义过 这样避免程序错误 2 对变量指定了类型之后 在编译时就可对该变量分配内存 3 每一个变量确定了一种类型后 实际上也就确定了对这个变量所能进行的操作 比如对两个整型变量a b则可以进行求余数操作a b 而对两个实型变量则不能进行求余运算 在遇到一个变量时 我们应该能想到 1 这个变量已经定义过 2 这个变量是属于某一种类型的 3 这个变量在内存中占用了若干个字节的空间 4 这个变量能表示的数值范围 总结 三种形式 如 十进制八进制十六进制90110 x9340420 x22 请大家自己写 23的八进制和十六进制表示 八进制 027 十六进制 0X17 3 3整型数据 一 整型常量 main intx y z t x 2 y 014 z 0 xef68 x y 01111 y z 45 z z 0 x33 printf d d d x y z 运行结果 537 4293 4197 1 整型数据在内存中是以二进制的形式存放的 在turboC中 整型数据占两个字节 如 inti i 10 二 整型变量 计算机内的数值数据是以补码表示的 正数的补码 原码负数的补码 正数原码取反 1 求 10的补码 1 补 1111 1111 1111 1111 2 补 1111 1111 1111 1110 3 补 1111 1111 1111 1101 32767 补 1000 0000 0000 0001 32768 补 1000 0000 0000 0000 整型负数的补码 16位 2 整型变量的分类 基本整型 int短整型 shortint或short长整型 longint或long 有符号数signed无符号数unsigned int 符号位 32767 32768 unsignedint 数据位 65535 0 signed int范围 215 215 1 即 32768 32767unsignedint范围 0 216 1 即0 65535long int 范围 231 231 1 unsignedlong int 范围 0 232 1 1000000000000000 0111111111111111 0000000000000000 1111111111111111 10000000000000000000000000000000 01111111111111111111111111111111 00000000000000000000000000000000 11111111111111111111111111111111 3 整型变量的定义inta b unsignedintc d longe f 1111111111111110 1000000000000000 0111111111111111 32767 32768 来看下面这个数 4 整型数据可能会溢出如 inta b a 32767 b a 1 定义无符号整型类型unsignedint或长整型类型long 思考 要表示绝对值大于32767的整数该怎么办 三 整型常量的类型 一个整型常量 整数 从其大小上可以判断与什么类型的变量匹配 范围在 32768 32767 之间可赋给int或long类型的变量 范围在 2147493648 2147483647 之间可赋给long类型的变量在TurboC中 shortint与int型数据在内存中所占的长度相同 都是16位常量无unsigned类型在一个整型常量后加字母L或l 则认为是long型常量 如123l445L0L 两种表示法 十进制小数形式 指数表示 浮点表示 3 14e1或0 314E2 再如 451 23表示成浮点形式 4 5123e2 规范化的指数形式 字母e之前必须由数字 且小数点左边只有一个非0数字 e后面的指数必须为整数 如 1e3 5 665e 3 3 4221e 4而e 5 3 1e2 5 e6都是不合法的指数形式 3 4实型数据 一 实型常量的表示方法 二 实型变量 1 实型数据在内存中的存放形式实型数据一般在内存中占4个字节 32位 实型变量的分类float单精度型 6 7位有效数字 10 37 1038 double双精度型 15 16位有效数字 10 307 10308 longdouble长双精度型 18 19位有效数字 10 4931 104932 数符 小数 指数数符 指数 定义实型变量 floatx y doublez 三 实型常量的类型许多编译系统将实型常量作为双精度数来处理 实型数据的舍入误差float型的数据提供7位有效数字 double型的数据提供15 16位的有效数字 main floatx x 7 1234567890 printf 20 18f x 运行结果 7 123456954956054690 3 5字符型数据 A a sd 9 请判断下列那些是字符常量 一 字符常量 由一对单引号括起来的单个字符 如 s 等 不是字符常量 为什么撇号中的字符不能是 转义字符 用 后跟一特殊字母代表一个控制字符 转义字符及含义 P 48表3 3 例如 Main printf abc b bd ne r n abc abc abc adc adc adce adce adce adce 字符型数据是用相应的ASCII代码的二进制形式存放的 故 它与整型数据的存放形式是一样的 如 a 的ASCII码为97 则它在内存中的存储形式为 二 字符变量 一个字符变量只能存放单个字符 charc1 c2 c1 a c2 b 三 字符变量的存储形式及其用法 这正是整型数据的存储形式c1 a c1 97 例3 7大小写字母的转换 main charc1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c c n c1 c1 main charc1 c2 inti1 i2 c1 A c2 B i1 A 32 i2 B 32 printf c的小写是 c n c1 i1 printf c的小写是 c n c2 i2 字符型数据与整型数据可以通用 如 在turboC中将字符处理成带符号的整数 字符 A 与整数65 字节的扩展 字符 与整数130 main charc1 unsignedcharc2 c1 130 c2 130 printf d d c1 c2 printf c n c1 go next 2的补码 2的补码8位 000000101111111016位 00000000000000101111111111111110总结 有符号数扩展正数 负数 back 高位扩展为全0 高位扩展为全1 四 字符串常量 字符串常量是由一对双引号括起来的一串字符 如 hello a 字符与字符串的区别 1 字符使用单引

温馨提示

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

评论

0/150

提交评论