第三章 数据类型、运算符和表达式
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4、字符串常量
一对“”之间的字符序列。如:“abc” 字符串常量中的字符依次存储在内存中 一块连续的区域中,并把空操作字符 “\0”自动加到字符串的尾部,作为字 符串的结束符。 字符串中字符个数为n,则所占内存空间 为n+1个字节。 字符串常量不能参与运算 一行写不开,需用\连接。
(2)、带符号数的长整型常量 ——4个字节 补码形式存于内存 数用l或L结尾。 -123L 1234567L
(3)、无符号数unsigned 数用u或U结尾。 85U 123LU
整型数据的溢出
–turbo c中一个int型变量的最大允许值为32767,如果 再加1,会出现什么情况?
main() {int a,b; a=32767; b=a+1; printf("%d,%d",a,b); } 运行结果为 32767,-32768
算术表达式 a*b/2/c+3 赋值表达式 f= a*b/2/c+3
3.3 表达式中的数据类型转换
一、自动类型转换
char 一定转换为int float 一定转换为double int ——double
等号右边的数据类型需转换成左边的类型 再赋值给左边的变量。
二、强制类型转换 形式: (type)expression
Char a; a=„a‟;
计算机自动给a分配一存储单元。 其中存放的不是‘a‟字符,而是 其ASCII码。
int b; b=97; C语言中,字符型数据和整形数据之间可以通 用。 字符型数据可以以字符形式输出,也可以整型 形式输出。 对字符数据可进行运算 字符数据与整型数据之间可相互赋值。
转义字符(转义序列) escape sequences ——表示非打印字符或易产生混淆的字 符 \(backslash)后跟 八进制数(1~3位)组成 或x及十六进制数(1~2位)组成 或字符组成 ‘a‟还可写成‘\141’或‘\x61‟ „\n‟ 或‘\012’
注:字符数据在内存中的存储形式及 使用方法
规范化的指数形式: 在字母e(或E)之前的小数部分中,小数点左 边应有一位(且只能有一位)非零的数字.
例如: 123.456可以表示为: 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e5
其中的1.23456e3称为“规范化的指数形式”。
3.2 运算符和表达式
一、简单赋值运算符
复合赋值运算符
操作数E1=操作数E1 运算符 操作数E2 如:x=x+y; 可表示成:操作数E1 运算符=操作数E2 如:x+=y;
注:运算符与等号之间不能有空格。 若右边是表达式,则展开时要加括号。 x%=y+3; 等价于 x=x%(y+3);
二、算术运算符
2、变量的数据类型variable data types (1)、整型变量 integer variable 带符号整型变量signed 名称 写法 内存中分配字节数 数据范围 基本型 int 2 -32768~32767 短整型 short (int) 2 -32768~32767 长整型 long (int) 4 -231~231-1 无符号整型变量 名称 写法 内存中分配字节数 数据范围 基本型 unsigned int 2 0~65535 短整型 unsigned short 2 0~65535 长整型 unsigned long 4 0~232-1
ex: int x=5; printf(“%d\n”,x/2); printf(“%d\n”, (float)x/2);
本章总结:
数据类型 整型、实型、字符型 运算符 算术运算符、赋值运算符 表达式 类型转换问题
第三章 数据类型、运算符和表达式 3.1 C的数据类型data types
C语言程序中的数据分为两类: * 常量 * 变量
数 据 类 型
一、常量
1、整型常量integer constant (1)、带符号数的整型常量——2个字节 signed 补码形式存于内存 十进制数:由0~9和正负号组成。 -5 953 150 十六进制数:由数字0和字母x或X组合 开头(0x或0X)。 0xf 0xaf 0x3a 八进制数:由数字0开头。 017
a+20的理论值应是12345678920 12345678848.000000
3、字符常量 character constant 一对单引号之内的单个字符 a single character closed by single quotes ——表示ASCII码集中的任意可打印字符 ‘a‟ „5‟ „A‟ ASCII code—American Standard Code for Information Interchang ( 128 code) ANSI code—American National Standards Institute (256 code)
2、浮点型常量——实数floating point 小数形式的实数 3.5 -.3 35. 指数形式的实数exponential notation 3E5 .1E-3 1.5e1 E前必有数字,整数小数均可 E后必为整数。
e3、2.1e3.5、.e3、e
1e3、1.8e-3、-123e-6、-.1e-3
(2)、实型变量 名称 写法 内存中分配字节数 有效数字 数据范围
单精度 双精度 float double 4 8 7位 10-37~1038 15~16位 10-307~10308
18~19位 10-4931~104932
长双精度 long double 10
(3)、字符变量 char a; 分配1个字节,只能存放一个字符。
+
-* / % -作单目运算时为取负运算。(右结合性) X=-y; /运算中,若操作数都为整数,则执行整除运算, 结果也为整数。 若操作数中有一个是实数,则执行浮点除法 运算,结果也为实数。 9/5=1 9.0/5=1.8 %取余运算 5%3=2 7%-3=1
三、表达式
由运算符组成的式子即形成表达式。
Hale Waihona Puke Baidu
5、符号常量
#define PI 3.1415926
total=PI*2*d; PI即符号常量。在预处理时替换。在程 序执行中不能重新对它赋值。 优点:节省运行时间;提高程序可读性; 便于修改
二、变量 variables
1、变量的初始化 变量在使用之前必先说明,说明的同时赋初 值,称为初始化。 int n,m,j; int n=3; double x=1.28; char c=„A‟; int i=1,j=2,k=3;
实数又分单精度实数和双精度实数 single precision numbers and double precision numbers 单精度实数:4个字节 有效字位数6~7位 双精度实数:8个字节 有效字位数15~16位 L或l结尾
实型数据的舍入误差
– 实型变量能提供的有效数字是有限的,在有效位以外 的数字将被舍去 说明:一个浮点型变量只能保证的 –例 有效数字是7位有效数字,后面 main() 的数字是无意义的,并不准确 {float a,b; 地表示该数。应当避免将一个 a = 123456,789e5; 很大的数和一个很小的数直接 b = a + 20 ; 相加或相减,否则就会“丢失” printf("%f",b); } 小的数