内容正文:
第2章
数据类型、运算符与表达式
2.4 实型数据
实型常量的表示方法
实型变量
2.4.1 实型常量的表示方法
实型又称为浮点型。
有两种表示形式:
1.十进制小数形式
2.指数形式
1.十进制小数形式:由数字和小数点组成。
如:0.0、-67.0、10.234、0.55、432.、.5
等均为合法的实数。
注意:实型常量中必须含有小数点。
2.指数形式:由十进制小数、阶码标志以及阶码组成。
阶码标志: e 或 E。
如:1.635E18 、-4.336e-12、1E-24 合法
2E 、3E0.5 不合法
注意:
阶码只能为整数,可以带符号,但不可缺少。
2.4.2 实型变量
1、实型数据在内存中的存放形式
实型数据一般占4个字节(32位)内存空间。按指数形式存储。实数3.14159在内存中的存放形式如下:
+ .314159 + 1
数符
小数部分
指符
指数
2.实型变量的分类:
单精度(float型) :占4个字节,共32位
双精度(double型) :占8个字节,共64位
长双精度(long double型) :占16 个字节
共128位
3.实型变量的定义及初始化
类型说明符 变量1[=值1],变量2[=值2],……;
例如:
double a , b , c ;
float x=1.0 , y=3.04;
4.实型数据的舍入误差
实型变量是由有限的存储单元组成的,能提供的有效数字是有限的,这样就会存在舍入误差。
【例5】一个较大实数加一个较小实数。
int main()
{ float x=7.24356E10, y;
y=x+54;
printf("x=%e
",x);
printf("y=%e
",y);
return 0;
}
程序执行的结果为:
x=7.24356E10
y=7.24356E10
进行计算时,要避免一个较大实数和一个较小实数相加减。
2.5 字符型数据
字符常量
字符变量
字符串常量
2.5.1 字符常量
字符常量是用单引号括起来的一个字符。
如:‘x’、‘f’、‘!’、‘#’、‘@’等。
转义字符
C语言中有一种特殊形式的字符常量是以一个“\”开头的字符,这种字符常量称为转义字符。
转义字符是将 “\”后的字符转换为另外的字符,不同于字符原有的意义。
转义字符主要用来表示那些用一般字符不便于表示的专用字符、图形字符和控制字符。
【例6】
#include <stdio.h>
int main(){
printf("\"China\"
");
printf("An\tHui
");
return 0;
}
程序运行的结果为:
"China"
An Hui
转义字符 转义字符的意义 ASCII代码
回车换行 10
\t 横向跳到下一制表位置(Tab) 9
\b 退格(Backspace) 8
\r 回车(不换行) 13
\f 走纸换页 12
\\ 反斜线符(\) 92
\' 单引号符 39
\'' 双引号符 34
\a 鸣铃 7
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
2.5.2 字符变量
字符变量的类型说明符是char。
一个字符变量占一个字节。
【例7】
int main() {
char ch1=’o’,ch2=’n’,ch3=’e’;
printf (“%c%c%c
”,ch1,ch2,ch3);
return 0;
}
运行结果为:one
【例8】字符赋值给整型变量,整数赋值给字符变量。
#include <stdio.h>
int main(){
char ch1, ch2;
ch1=120;
ch2=121;
printf("%c,%c
",ch1,ch2);
printf("%d,%d
",ch1,ch2);
return 0;
}
程序运行结果:
x,y
120,121
结论:
1.允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,反之亦然。
2.常用字符的ASCII码
A:65 a:97 0:48
3.因字符量存放为单字节,所以当整型量按字符型量处理时,只有低八位字节参与处理。
【例9】大写字母到小写字母的转换
int main()
{ char ch1,ch2;
ch1=‘P’,
ch2=ch1+32;
printf (“%c,%c”,ch1,ch2);
return 0;
}
程序运行结果:P,p
思考:
如何将从键盘输入的一个小写字母转换成大写字母输出?
说明:
1.字符型变量与整型数据一起运算时,字符型先转换成整型后再参与运算。
2.字符型转换成整型时,按照符号位扩展。
P43 例2.13
2.5.3 字符串常量
字符串常量是由一对双引号括起的字符序列。
例如: "How do you do!"
"student"
"1*2\3.5"
C语言规定:
在内存中存储时,字符串的结尾加一个结束标志‘\0’。
2.5.3 字符串常量
比较:‘a’和 “a” 的含义。
在内存中的存储情况如下:
‘a’在内存中占1个字节,
“a”在内存中占2个字节,
a
a
\0
注意:
1.C语言中不存在字符串变量。
2.求字符串在内存中所占字节数时,注意转义字符。
$$