数据类型、表达式与运算符

上传人:bin****86 文档编号:57237846 上传时间:2018-10-20 格式:PPT 页数:96 大小:409.50KB
返回 下载 相关 举报
数据类型、表达式与运算符_第1页
第1页 / 共96页
数据类型、表达式与运算符_第2页
第2页 / 共96页
数据类型、表达式与运算符_第3页
第3页 / 共96页
数据类型、表达式与运算符_第4页
第4页 / 共96页
数据类型、表达式与运算符_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《数据类型、表达式与运算符》由会员分享,可在线阅读,更多相关《数据类型、表达式与运算符(96页珍藏版)》请在金锄头文库上搜索。

1、1,第三章 数据类型、运算符与表达式,3. 1 C的数据类型 3. 2 常量与变量 3. 3 整型数据 3. 4 实型数据(浮点型数据) 3. 5 字符型数据 3. 6 变量赋初值 3. 7 各类数值型数据间的混合运算 3. 8 算术运算符和算术表达式 3. 9 赋值运算符和赋值表达式 3. 10 逗号运算符和逗号表达式,2,3. 1 C的数据类型程序 = 算法 + 数据结构算法:求解问题的方法和步骤; 数据结构:数据元素及各元素之间的关系;说明:高级语言的数据结构是以数据类型来体现体现数据间的组织形式和结构关系的。,3,整型基本类型 实型字符型数组C的数据类型 构造类型 结构体共用体指针类型

2、空类型,4,3. 2 常量与变量 3.2.1 常量 何谓常量程序中直接书写的数据;其值不能被改变的量。 例如:a=100; b=a+12; 常量的类型以字面形式区分; 例如: 123 (基本整型)3.5 (实型)123L (长整型)A (字符型) 符号常量用标识符代表一个常量。,5,符号常量的定义: 例: #define PRICE 30 /定义符号常量 main( ) int num1, num2, num3, cost1, cose2, cost3;cost1=num1*PRICE;cost2=num2*PRICE; cost2=num2*PRICE;,【例】求圆柱体的圆周长、顶面积和圆柱

3、体体积 # define PI 3.1415926 main( ) float r, h, c, s, v;printf(“Input radius and height:”);scanf(“%f%f”, ,7,定义符号常量的意义:在程序中多处引用同一个常数时,采用符号常 量便于参数的修改、减少较长数据的输入工作量。注意: 符号常量名可用大写或小写字母,为了便于与变量名区分,通常用大写。 在符号常量作用域内,不得出现符号常量被赋值现象。如:PRICE=20 非法。,8,3.2.2 变量 何谓变量在程序运行过程中允许被改变的量;变量代表内存中具有特定属性的一个存储单元,它用来存放数据,也就是变量

4、的值。 C变量命名规则:由大或小写字母、数字、下划线组成,且第一 个字符必须是字母或下划线。 标识符标识的对象: 变量、数组、函数、符号常量等。 变量名长度: MS C有效字符为8个,多余部分不予识别; Turbo C隐含有效字符为32个,可自行调整。,9,变量命名举例: 合法:sum、SUM、Average、toal、cost_1、_1 非法:for、num-1、1a、ABC# 注意: 1. C变量名中字母可大小写,但有大小写之分,SUM、sum、Sum被视为不同的变量。 2. 有效字符相同的变量名被视为是同一个变量;如MS C中student_name与student_number。 3.

5、 在实际应用中命名应尽量见名知意,如sum(求和),max(最大),PI(),BT()等。 4. C中变量必须先定义后引用。,5. 变量名决不能与系统规定的保留字同名,如int=3,float=3.0是非法的;最好也不要与系统提供的标准库函数名同名。,系统保留字 系统保留字(reserved word)是系统专门用来命名C程序的数据类型、语句、存储类别及个别运算符的具有特殊含义的标识符,也称为关键字。所有的保留字均为小写字母,专供系统本身使用。下面分类给出ANSI C规定32个保留字(参见附录)。,(1)类型标识保留字,共包括char,double,enum,float,int,long,sh

6、ort,signed,struct,union,unsigned,void12个。 (2)控制语句保留字,包括break,case,continue,default,do,else,for,goto,if,return,switch,while共12个。 (3)存储类别保留字,共包括auto,extern, register,static4个。 (4)其他的保留字,共包括const,sizeof, typedef,volatile4个。,与变量有关的概念: 变量三要素:变量名、变量地址、变量值 变量的地址 (变量的指针)给变量分配的存储单元第一个字节的地址; 例如:int n, m;n=10;

7、m=25;,n的地址 202 m的地址 204,10 25, 变量被赋值的物理意义是向它的存储单元写数; 变量可多次被赋值,新值将覆盖旧值;例如:n=10; /*赋值:破坏性的*/n=45; 变量被引用的物理意义是从存储单元中读数;例如:n=10; m=n+2; /*引用:非破坏性的*/ 两变量内容的交换可借助另一个变量或利用运算关系实现。,5,10,例如:实现两个变量内容的交换 方法1:利用中间变量实现 int a=5, b=10, t;t=a;a=b;b=t;方法2:利用运算关系a=a+b; /*5+10=15a*/b=a-b; /*15-10=5 b*/a=a-b; /*15-5=10a

8、*/,10,a,t,b,5,5,15,3. 3 整型数据 3.3.1 整常量有三种表示形式: 十进制 八进制以数字0开头; 十六进制以0x 或0X开头;其中0:数字0 例:53 -127 0123 -0177 0x53 -0X7F,复习知识: 计算机中数的表示及进制转换数码、基与权数码:表示数的符号基:数码的个数权:每一位所具有的值 数制,十进制:4956= 410+910 +510+610,二进制:1011=12+02 +12+12,十六进制:81AE=816+116 +1016+1416,八进制:4275=48+28 +78+58,各种进制之间的转换 二进制、八进制、十六进制转换成十进制

9、方法:按权相加,各种进制之间的转换(整数) 二进制、八进制、十六进制转换成十进制 方法:按权相加,十进制转换成二进制、八进制、十六进制 原理:,方法:连续除以基,从低到高记录余数,直至商为0,二进制与八进制之间的转换 二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 八进制转换成二进制:用3位二进制数代替每一位八进制数,例 (1101001)2=(001,101,001)2=(151)8,例 (246)8=(010,100,110)2=(10100110)2,000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7,二进制与十六进制

10、之间的转换 二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 十六进制转换成二进制:用4位二进制数代替每一位十六进制数,例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16,例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2,0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F,字节和位 内存以字

11、节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或1,数值的表示方法原码、反码和补码 原码:最高位为符号位,其余各位为数值本身的绝对值 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1,9-5=4 9+7=16=(14)12,3.3.2 整型变量,1 整型数据在内存中的存放形式,数据在内存中是以二进制形式存放的。,例1:int i; /* 定义为整型变量*/i=10; /* 给i赋以整数10*/,10=(1010)2,实际上,数值是以补码表示的。 正整数的

12、补码与原码相同。 负整数求补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。,例如求-10的补码的方法是:,26,2 整型变量的分类,注意: 1. int 的长度 与 机器字长相同, 16位的编译器上int长16位,32位的编译器上int长32位; 2. short int 的长度 小于等于 int 的长度,注意她们可能长度相等,这取决于编译器; 3. long int 的长度 大于等于 int 的长度,注意她们可能长度相等,这取决于编译器;,28,在Turbo C中:,3 整型变量的定义 C变量定义的一般形式: (适合于任何类型) 存储类别类型标识符变量名表; 其中: 存储类别aut

13、o(隐含): 变量初值不定;static: 初值自动为0; 变量名表多个变量以逗号分隔; 变量定义位置通常在函数体内执行语句之前。,【例】: main( ) int i, j, k; static int m; long a, b=5; unsigned u;i=20;b=i+20; ,2byte,4byte,2byte,i 初值不定 j 初值不定 K 初值不定 a 初值不定 b 初值为5 u 初值不定m 初值为0,a=b+i; ?,31,3.3.3 整型常量类型int 型常数: 3276832767视为int常数;可赋给int、long型变量。 long型常数:在 2147483648 21

14、47483647之内、但超出 3276832767的数及带后缀l / L的视为long型常数;可赋给long型变量。,2147483648 32768 0 32767 2147483647,long int long,带后缀 l 或L的:long,unsigned int 型常数: 一个整常量后面加一个字母u或U,认为是unsigned int型,如12345u在内存中按unsigned int规定的方式存放。如果写成 -12345u ,则先将-12345转换成其补码53191,然后按无符号数存储。,3.3.4 整型量的溢出若一个变量无法容纳下要存入的数,这种现象称为溢出,溢出将导致数据存储错误;在运算过程中也有可能产生溢出导致运算结果错,因此程序设计中应避免产生溢出。 例:int a, b;a=65538; /*65538:长整型*/b=123*456;printf(“a=%d, b=%d“, a, b);a=2, b=-9448 (溢出的错误结果),溢出原因:位数或范围超出 1) a=65538; 65538=(1 0000 0000 0000 0010 )2a: 只存入后16位 2) b=123*456;123456=56088=( 1101 1011 0001 1000 )2b:-9448的补码,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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