c语言数据类型变量运算符及表达式,C语言 第二章 数据类型、运算符及表达式A...

《C语言 第二章 数据类型、运算符及表达式A》由会员分享,可在线阅读,更多相关《C语言 第二章 数据类型、运算符及表达式A(38页珍藏版)》请在技术文库上搜索。

1、C语言程序设计 第2章 数据类型、运算符与表达式 本章主要学习任务 C的数据类型; 2.常量、变量; 3. 常用基本数据类型的表示、机内存储、变 量分类; 4. 数值型数据混合运算及类型转换规律。 2.1 C的数据类型 n数据类型:数据的存在或组织形式 基本类型 指针类型 构造类型 空类型 整型 字符型 实型 枚举型 单精度型 双精度型 数组类型 结构体类型 共用体类型 注意:C语言中的数据有变量与常量,它们分别 属于上述这些类型。 1、不同的数据类型有不同的取值范围。 2、不同的数据类型有不同的操作。 3、不同的数据类型即使有相同的操作有时 含义也不同。 4、不同的数据类型对计算机可能出现的。

2、错 误不同。 2.2 常量与变量 一、常量: 字面常量 符号常量 (用标识符代表) 定义方法: #define PI 3.1415 不是C语句,不必在行末加分号。 该命令是用标识符代替一个字符串,不作正 确性检查 使用符号常量的好处: n 含义清楚、见名知意。 n 修改方便、一改全改。 二、变量 变量必须先定义后使用 变量名、变量值、存储单元的关系 标识符标准: 1、组成:字母、数字、下划线,且首字 符不能为数字 合法:abc, _321, _1a,非法: 2aa, a#c,_c.9 2、长度: 3、大写小写不同 SUMsum 4、选择标识符的时候要“见名知意” 符号常量与变量的关系 符号常量。

3、:值在作用域内不能改变,不 能被再赋值;常用大写 变量:值是可以改变,可以多次赋值的 ;常用小写 2.3 整型数据 一、整型常量 十进制整数: 八进制整数: 十六进制整数: 注:C语言整常数没有二进制整数形式 二、整型变量 内存中的存放形式 以二进制补码形式存放 每个基本整型变量在内存中占4个字节 (VC环境中) 整型变量的分类 基本类型 int 可加修饰符:short 、long、signed、 unsigned 整数类型 类类型比特数 最大取值值范围围 signed int 32-231(231-1) unsigned int320(232-1) signed short int16-21。

4、5(215-1) unsigned short int 160(216-1) signed long int32-231(231-1) unsigned long int 320(232-1) 3. 整型变量的定义 定义格式:数据类型名 变量名; n可定义多个相同类型的变量。各个变量用 “,”分隔。类型说明与变量名之间至少有 一个空格间隔。 n最后一个变量名之后必须用“;”结尾。 n变量说明必须在变量使用之前。 n可以在定义变量的同时,对变量进行初始 化。 4. 整型数据的溢出 整型数最大允许值+1,最小允许值-1,会 出现什么情况? 例:短整型数据的溢出 void main() short 。

5、a=32767,b; b=a+1; printf(“a=%d,b=%dn“,a,b); 三、整型常量的类型 整型常量赋值给整型变量时,如何匹配? n值在-3276832767范围内的整数,可以赋 值给int和short int 、long int型变量。 n如果值超过了以上范围,在-2147483648 2147483647范围内,可以赋值给int、long int型变量。 2.4 实型数据 一、实型常量 n十进制小数形式: .123、123.、123.0 n 指数形式:e之前必须有数字,e后面指数 必须是整数 n规范化的指数形式:字母e之前的小数部 分中,小数点左边应有且只有一位非零数 字 。

6、二、实型变量 实型数据在内存中是以指数形式存放的 实型变量的分类 单精度 float 4字节 双精度 double 8字节 长双精度 long double 10字节 3. 实型数据的舍入误差 因为实型变量的有效位以外的数字将被舍 去,由此会产生误差 void main() float a; double b; a=33333.33; b=33333.33333; printf(“a=%f,b=%fn“,a,b); 三、实型常量的类型 实型常量可以赋给float, double, long double ,按变量类型截取实型常量中相应的有效数 字位数 注意: n不要试图用一个实数精确表示一个大。

7、整数 ,记住:浮点数是不精确的。 n实数一般不判断“相等”,而是判断接近或 近似。 n根据要求选择单精度、双精度。 2.5 字符型数据 一、字符常量 直接用单引号括起来, 使用字符的转义表示法表示(ASCII码表 示) 特殊字符: 预先定义的一部分常用的转义字符。如 n 换行,t水平制表。 转义表示格式:ddd或xhh(其中ddd,hh 是字符的ASCII码,ddd八进制、hh十六 进制)。 注意:不可写成0xhh或0ddd(整数)。 二、字符变量 字符型变量是用来存放字符数据,同时只能 存放一个字符。 定义形式:char a=a,b=b; 所有编译系统都规定一个字符变量在内存 中占一个字节。。

8、 三、内存中的存储形式 以字符的ASCII码,以二进制形式存放, 占用1个字节。 字符型数据和整型数据之间可以通用(当作 整型量)。具体表现为: n可以将整型量赋值给字符变量,也可以将 字符量赋值给整型变量。 n可以对字符数据进行算术运算 n一个字符数据既可以以字符形式输出,也 可以以整数形式输出。 注意:字符型数据作为整数使用范围 0-255(无符号) -128-127(有符号)。 例:给字符变量赋以整数(字符型、整型 数据通用) main() /* 字符a的各种表达方法 */ char c1=a; char c2=x61; char c3=141; char c4=97; char c5=。

9、0x61; char c6=0141; printf(“c1=%c,c2=%c,c3=%c,c4=%c,c5=%c, c6=%cn“,c1,c2,c3,c4,c5,c6); printf(“c1=%d,c2=%d,c3=%d,c4=%d,c5=% d,c6=%dn“,c1,c2,c3,c4,c5,c6); 四、字符串常量 字符串常量:是一对双引号(“”)括起来的 字符序列。 注意: n字符常量与字符串常量。如“a”和a。 nC规定以0(ASCII码为0的字符)作为字 符串结束标志。 n不能将字符串赋给字符变量。 nC语言没有专门的字符串变量,如果想将 一个字符串存放在变量中,可以使用字符 数组。

10、。 2.6 变量赋初值 C语言允许在定义变量的同时使变量初始 化。 可以使被定义的变量的一部分赋初值 对几个变量赋同样的初值: int a=3,b=3,c=3; 错误的赋值表示:int a=b=c=3; 2.7 各类数值型数据的混合运算 整型、实型、字符型数据之间可以混合运算 进行运算时,不同类型的数据先转换成同一类型 ,然后进行计算 转换的方法: 自动转换(隐式转换) 强制转换。 1.自动动转换(隐式转换) 混合运算时,由编译系统自动完成。转换 规则:(参看图2-10) 赋值运算,赋值号右边的类型转换为左边 的类型。这种转换是截断型的转换,不会 四舍五入。 2.强制转换 一般形式:(类型说明。

11、符)(表达式) 功能:把表达式的结果强制转换为类型 说明符所表示的类型。 例如(int)a 将a的结果强制转换为整型量 。 (int)(x+y) 将x+y的结果强制转换为整型 量。 (float)a+b 将a的内容强制转换为浮点数 ,再与b相加。 说明: 类型说明和表达式都需要加括号(单个 变量可以不加括号) 无论隐式转换,强制转换都是临时转换 ,不改变数据本身的类型和值。 例:强制类型转换 void main() float f=5.75; printf(“(int)f=%dn“,(int)f); printf(“f=%fn“,f); 2.8 算术运算符和算术表达式 C语言运算符:控制语句和。

12、输入输出以为 的基本操作都作为运算符处理 P31 表达式:使用运算符将常量、变量、函数 连接起来,构成表达式。 一、算术运算符 +,-,*,/,% 1.两个整数相除,结果为整数,舍入方式为 “向零取整” 2.求余运算,两侧均应为整型数据,余数的 符号与被求余数符号相同。 二、算术表达式 1. 算术表达式:用算术运算符将运算对象 连接起来的、符合C语法规则的式子。 2. 运算对象可以是常量、变量、函数等。 合法的C表达式:a*b/c-1.5+a 注意: C语言算术表达式的乘号(*)不能省略 C语言表达式中只能出现字符集允许的字 符。 C语言算术表达式只使用圆括号改变运算 的优先顺序(不要指望用)。

13、。 3.(算术)运算符的优先级与结合性(P.325 附录) C语言规定了运算符的“优先级”和“结 合性”。 优先级别相同,则按规定的“结合方向” 处理。 左结合性 右结合性 对于复杂表达式为了清晰起见可以加圆括 号“()”强制规定计算顺序。 四、自增、自减运算符 +i,i+ -i,i- 注意: 前置运算:+i,-i,先自增、减,再参与 运算; 后置运算:i+,i-,先参与运算, 再自增 、减。 例如:i=3,分析j=+i; j=i+; 自增、减运算符不能用于常量或表达式。 五、表达式使用中的问题: 1.表达式中子表达式的求值顺序; 2. C编译系统在处理时尽可能多地将若干字 符组成一个运算符(。

14、在处理标识符、关键 字时也按同一原则处理); 3. 调用函数时,实参的求值顺序。 2.9 赋值运算和赋值表达式 一、赋值运算符 赋值符号“=”就是赋值运算符 二、类型转换 赋值运算时,当赋值运算符两边数据类 型不同时,先将赋值号右边表达式类型转 换为左边变量的类型,然后赋值。 1.实型数据赋给整型变量 2. 整型数据赋给实型变量 3.单双精度常量赋值给实型变量 4.字符型赋给整型变量 5.整型数据赋给字符型变量 三、复合的赋值运算符 “=”之前加上其他二元运算符,构成复合的 运算符 a+=3;对应于a=a+3; 四、赋值表达式 变量=表达式 将赋值运算符右侧的“表达式”的值赋给左侧 的变量,赋值表达式的值就是被赋值的变 量的值 2.10 逗号运算符和逗号表达式 逗号表达式:用逗号将两个表达式连接起 来 形式: 表达式1,表达式2 求解过程: 自左向右,先求解表达式1,再求解 表达式2,整个逗号表达式的值是表达式2 的值,可以扩展到N个表达式 优先级:所有运算符中优先级最低 例:a=3*5,a*4 注意:函数参数也是用逗号来分隔的 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值