- 2
- 0
- 约2.88千字
- 约 52页
- 2021-03-20 发布于广东
- 举报
第 2 章 数据类型、运算符与表达式;常量与变量
整型数据
字符型数据
浮点型数据
运算符和表达式
不同类型数据间的转换;;§2.2常量与变量;常 量;变 量;变量的赋值; 整型常量(整常数)
三种形式:
十进制整数:由数字0~9和正负号表示.如 123,-456,0
八进制整数:由数字0开头,后跟数字0~7表示.如0123,011
十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 如0x123,0Xff; 整型变量
分类:
有符号数和无符号数。
用关键字signed, unsigned指定。
基本型、长整型和短整型。
用关键字int, long, short指定。
字节数和表示范围
定义
形式:数据类型 变量名
例子:
int x, y; /*定义x, y为整型数*/
unsigned short m, n; /*定义m, n为无符号短整型数*/
long a; /*定义a为长整型数*/; 整型数据的存储方式
short ≤ int ≤long
最高位为符号位,0为正,1为负
以二进制补码的形式存放
如:10 的补码
-10的补码;例 整型数据溢出
#include stdio.h
void main()
{
int a,b;
a=32767;
b=a+1;
printf(“%d,%d\n,a,b);
};§2.4 字符类型 ; 字符常量
定义:用单引号括起来的单个普通字符或转义字符. ;;;例 /*转义字符的使用*/
#include stdio.h
void main()
{
printf(“ ab c\t de\rf\tg\n”);
printf(“h\ti\b\bj k\n”);
};例 /*转义字符的使用*/
#include stdio.h
void main()
{
printf(“AB\bCDEF\rGH\n”);
};§3.5 实数类型;浮点数的分类; 实型常量(实数或浮点数)
表示形式:
十进制数形式:(必须有小数点)
如0.123, .123, 123.0, 0.0, 123.
指数形式:(e或E之前必须有数字;指数必须为整数)
如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 ;程序清单;sizeof运算符;基本数据类型小结;§3.6 运算符和表达式;C语言中的运算符(13类);学习运算符应注意:;1 算术运算符和表达式;自增、自减运算符 ++ --;2赋值运算符和表达式;说明:
结合方向:自右向左
优先级: 14
左侧必须是变量,不能是常量或表达式;3逗号运算符和表达式;4关系运算符和表达式;关系运算注意事项:;5逻辑运算符和表达式;;逻辑运算的短路特??:;6条件运算符与表达式;良好的源程序书写习惯:
表达式中,在双目运算符的左右两侧各加一个空格,可增强程序的可读性。
比较:“(x + y) / 2 – 1” 与 “(x+y)/2–1”
尽量把复杂的表达式分成多个表达式来写。
尽量使用圆括号显式指明哪部分先运算,而不是依赖运算符的优先级。;不同类型数据间的转换;注意
有符号与无符号之转换
由有符号负数转为同长度的无符号数时,最高位不再被当作符号位,结果相当于2^16或2^32加上该负值
由无符号数(超出表示范围)转为同长度的无符号数时,最高位被当作符号位,结果相当于该数减去2^16或2^32。
实数转整数,小数被截取。double转float,超出有效数字范围的四舍五入。
数据转换可能丢失精度。在截取与四舍五入及long型转实型时可能发生。
数据转换结果具有不确定性。将较长整数转为较短整数时,只低字节有效。double转float, 实数转整数时,如值超过目标类型的取值范围,则结果是不确定的。;隐式转换
什么情况下发生
运算转换------不同类型数据混合运算时
赋值转换------把一个值赋给与其类型不同的变量时
输出转换------输出时转换成指定的输出格式
函数调用转换------实参与形参类型不一致时转换
运算转换规则
不同类型数据运算时先自动转换成同一类型,转换结果使表达式中只有5种类型,即:
int, unsigned int, long, unsigned long, double
“向高看齐”原则。;
原创力文档

文档评论(0)