电子课件第2章

上传人:w****i 文档编号:94399142 上传时间:2019-08-06 格式:PPT 页数:82 大小:1.01MB
返回 下载 相关 举报
电子课件第2章_第1页
第1页 / 共82页
电子课件第2章_第2页
第2页 / 共82页
电子课件第2章_第3页
第3页 / 共82页
电子课件第2章_第4页
第4页 / 共82页
电子课件第2章_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《电子课件第2章》由会员分享,可在线阅读,更多相关《电子课件第2章(82页珍藏版)》请在金锄头文库上搜索。

1、1,第2章 数据的表示与存储,2,主要内容,2.1 C语言的数据类型 2.2 整型数据 2.3 浮点型数据 2.4 字符型数据 2.5 字符串数据 2.6 指针型数据 2.7 枚举型数据 2.8 符号常量与const限定 2.9 使用typedef命名数据类型,2.1 C语言的数据类型,4,2.1 C语言的数据类型,数据类型是程序设计语言中描述数据结构的机制 刻画了数据符号所能具有的一组值 在这组值上定义的相关操作/运算 为数据分配多少存储空间(多少个二进位) 如何存储 可表示值的范围,数据类型的概念,5,2.1 C语言的数据类型,程序设计语言提供数据类型的方式 提供一些预定义的基本数据类型

2、允许程序设计者使用预定义的数据类型构造(派生)出新的类型 为已有数据类型起一个新的名字,程序设计语言中的数据类型,6,2.1 C语言的数据类型,6,C语言中的数据类型,7,2.2 整型数据,2.2.1 整型常量 2.2.2 整型变量,8,2.2 整型数据,有符号整型数(signed)与无符号整型数(unsigned) 使用不同的二进位个数,表示不同范围的整数 不同进制形式 可以使用整数表示逻辑值,C语言中整型数据的特点,9,2.2 整型数据,C语言中的整数类型,10,2.2 整型数据,存储位数的要求 C标准并没有统一规定int、short和long型数据使用多少二进制位存储,但是就存储位数而言

3、,要求 short int long int型数据的存储位数至少为16位 long型数据的的存储位数至少为32位。 带符号整数的表示 带符号整数采用补码表示数据 采用n位存储位数时的表数范围 带符号整型数据的数值表示范围为-2n-12n-1-1 无符号整型数据的数值表示范围为02n-1,10,整数的二进制表示要求,11,2.2 整型数据,11,Turbo C中整型类型及数值表示范围,12,2.2.1 整型常量,常量是在程序运行过程中其值已知且不能改变的量 从表示形式上看,C语言中有字面常量和符号常量,12,13,2.2.1 整型常量,十进制形式的整型常量 十进制形式的整型常量由+、号(+号可有

4、可无)和十进制数字构成。例如:100 -567 +123 八进制形式的整型常量 八进制形式的整型常量由+、号和八进制数字构成。书写时符号可有可无但必须以数字0开头。例如:0123 -076 十六进制形式的整型常量 十六进制形式的整型常量由+、号和十六进制构成。书写时符号可有可无但必须以0x或0X开头。例如:0x123 -0xAE,13,整型字面常量的形式,14,2.2.1 整型常量,没有任何类型指示的整型常量 其数值在int型数据的表示范围内则为int型,否则为 long型 如果超出long型数的表示范围,自动进行溢出处理 显式地指定整型常量的数据类型 在整型常量后面添加字母u或U,表示按无符

5、号类型处理与存储,例如:123u (表示unsigned int型) 在整型常量后面添加字母l或L,表示按long类型处理与存储,123L (表示long型) u或U与l或L可以组合使用,14,整型常量的类型,15,2.2.2整型变量,变量是在程序运行期间其值可以改变的量 变量的属性 变量的标识 类型 值与取值范围 初始化 存储 引用及作用域,15,16,2.2.2整型变量,变量的名字按C语言的标识符命名规则确定,但需要注意: 不能使用关键字作为变量名 避免使用保留字作为变量名 不宜使用库函数名作变量名 为避免混淆不应使用预处理命令标识符作为变量名 变量的名字应该尽量反映变量在程序中的作用与含

6、义 因各编译程序允许的变量名的长度不同,为程序的易移植性,应尽量使用短标识符。 变量名中区分大小写字母,16,变量的命名,17,2.2.2整型变量,合法的变量名 Sum sum Total_value j k_ _errorno _1_ 非法的变量名 M.D.john 123 -1-2-3 $33 c/s tax凵rate int 合法但不合适的变量名 ifdef printf _kcab,17,变量的命名,18,2.2.2整型变量,变量必须先声明(declaration)后使用 规定变量先声明后使用还有利于及时发现程序中的错误 “声明”是C语言中的一种特殊语句,其特殊性在于: 非计算功能语句

7、 不能前缀语句标号 限定使用位置 有定义性与引用性声明之分,18,变量的声明,19,2.2.2整型变量,在C语言程序中的多个不同位置处都可以声明变量 在不同位置处声明的变量具有不同的作用域、生命期 作用域指程序中的标识符能够被引用的范围 生命期则是指标识符从建立到撤消的有效与存在时间,19,程序中声明变量的位置,20,2.2.2整型变量,在函数外部声明的变量相对函数而言称之为“外部变量” 编译阶段被分配存储空间 生命周期是整个程序运行期 除特别说明外,其作用域是整个源程序文件,所以也称为文件作用域 例 int a; /* 外部变量声明 */ int main(void ) ,20,外部变量,2

8、1,2.2.2整型变量,在函数内部声明的变量则称之为“局部变量” 可以在函数中的四个不同位置处声明局部变量 在函数体的开始位置 在函数的形式参数位置 函数中复合语句的开始位置 在for循环语句中,21,局部变量,22,2.2.2整型变量,在函数体开始位置声明的变量只在该函数内有效,具有块作用域,在该函数内的语句可以直接使用它们。这种变量是在函数被调用执行时才被分配存储空间,而当退出函数时取消其定义。例如: int main(void ) int a; ,22,局部变量,23,2.2.2整型变量,复合语句是一对大括号括住的程序块,也称分程序。 在复合语句开始位置声明的变量是一种作用域更小的局部变

9、量,仅限于该复合语句,对函数的其他部分是不可见、不可存取的。 每当执行进入复合语句时才给其中声明的变量分配存储空间,离开复合语句时取消其定义。,例: int main(void ) while(a0) int a; ,23,局部变量,24,2.2.2整型变量,在函数的形式参数位置声明的变量称为形式参数变量。形式参数变量也是一种局部变量,其性质及其作用域与在函数体的开始部分定义的变量相同。 int fun(int a, int b) ,24,局部变量,25,2.2.2整型变量,语法形式 存储类型 数据类型 变量名1 =初始化值1 ,变量名n =初始化值n ; 声明的变量可被指定存储到三种不同的存

10、储区域中: 静态数据区 堆栈区 寄存器 存储类型决定变量的存储空间位于内存哪个区域,以及该变量的生命周期 auto static register extern,25,变量声明的一般语法形式,26,2.2.2整型变量,两种最常用形式: 数据类型 变量名; 数据类型 变量名1,变量名2,变量名n ; 例 int count; unsigned int a,b,c; long seconds, minutes, hours,26,变量声明的常用语法形式,27,2.2.2整型变量,首次向变量中存值称之为变量的初始化 系统自动初始化 外部变量和静态局部变量:C编译程序将在编译阶段将分配的存储空间清0,

11、这相当于给这类变量置初值0; 非静态局部变量:开始时无法预知存储空间中数据是什么,此时称变量的值“无定义”;程序中不应该使用无定义的变量。 程序员显式初始化 三种手段,27,变量初始化,28,2.2.2整型变量,在声明变量的同时指定初值,语法形式: 数据类型 变量名=初始化值; 例: int a=1,b=2,c=3; 注意: static型变量和外部变量的初始化值必须为常量或常量表达式 函数和复合语句中声明的带有初始化值的static型局部变量仅在编译时对它们初始化一次 auto、register型局部变量的初始化值可以是:常量、符号常量、变量名、函数调用及由它们组成的表达式。 但如果含有变量

12、名,则必须是在这之前已经指定了初始化值的变量名 不能为函数的形式参数指定初始化值,28,变量初始化方法(1),29,2.2.2整型变量,通过赋值语句给变量赋初值。 定义变量后,可以通过变量名引用变量的值,也可以通过变量名改变变量的值。 例: int a,b; a=-10 b=a+2;,29,变量初始化方法(2),30,2.2.2整型变量,从外部读入数据存入指定的变量中 可以通过调用scanf()等库函数实现。 例: int val ; scanf(“%d”,30,变量初始化方法(3),31,2.2.2整型变量,变量的名字,变量存储空间,变量的值,变量的地址之间的关系 假设在16位的C编译程序中

13、,变量val是存储在地址从1000 开始的存储存储空间中,并存储了值为-10的int型变量。,31,变量的属性总结,32,2.2.2整型变量,例2.1 使用未初始化变量的值。 int main(void) int a,b; b=a; scanf(“%d”, ,32,声明、使用变量时的常见错误,33,2.2.2整型变量,例2.2 变量声明在动作语句之后。 int main(void) a=3; int a; ,33,声明、使用变量时的常见错误(2),34,2.2.2整型变量,例2.3 变量声明语法错误。 int main(void) int a, int b; ,34,声明、使用变量时的常见错误

14、(3),35,2.2.2整型变量,例2.4 声明变量的初始化方式错误。 不能以如下方式声明带初始化值的变量: int a=b=c=1; 如果需要将变量a,b,c都初始化为1,必须写成: int a=1,b=1,c=1; 或者 int a,b,c; a=b=c=1;,35,声明、使用变量时的常见错误(4),36,2.3 浮点型数据,2.3.1 浮点数常量 2.3.2 浮点型变量,37,2.3 浮点型数据,单精度型(float) 双精度型(double) 长双精度型(long double),C语言中的浮点数据类型,Turbo C中浮点类型的相关信息,38,2.3 浮点型数据,新增了6种复数类型:

15、 float _Complex double _Complex long double _Complex float _Imaginary double _Imaginary long double _Imaginary,C99对浮点数据类型的扩充,39,2.3.1浮点数常量,浮点数常量的表示形式 十进制小数形式 一般书写形式是: a . b 例如:0.1,0.0,3.0,.1,1.,.2,+31.45,000.321 十进制指数形式 一般书写形式:a.be c 或 a.bEc 表示的数值为:a.b10c。 例如:1.234e8 /* 表示1.234108 */ .456e9 /* 表示0.4

16、56109 */,40,2.3.1浮点数常量,浮点型常量的类型 大多数C编译程序都规定:程序中浮点数常量在没有任何类型指示的情况下都按double型处理,允许在浮点数直接量后面加上一个字母F或f,强制将其按单精度浮点数存储与处理。 规格化形式的浮点型常量 书写形式是小数点前只有一位非0数字 例如:1.23e-2,41,2.3.2 浮点型变量,声明浮点型变量 float a,b; double pi=3.14; long double c; 引用浮点型变量 float a,b; a=1.0; b=a;,42,2.4 字符型数据,2.4.1 字符集 2.4.2 字符常量 2.4.3 字符型变量,4

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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