7.1 整型
当读或写短整型数时,在d o u或x前面加上字母h:
short int s;
scanf("%hd",&s);
printf("%hd",s);
当读或写长整型数时,在d o u或x前面加上字母l:
long int l;
scanf("%ld",&l);
printf("%ld",l);
7.2 浮点型
默认情况下,浮点常数都是以双精度数的形式存储的.换句话说,当C语言编译器在程序中发现56.0时,它会安排数据以double型变量的格式存储在内存中.通常这条规则不会引发任何问题,因为在需要时double类型的值可以自动转化为float类型值.
为了表示只需要单精度,可以在常量的末尾处加上字母F或f.而为了说明常量必须以long double格式存储,要在常量末尾加上字母L或l.
在读取double类型的数值时,在e f 或 g前放置字母l
double d;
scanf("%lf",&d);
注意:只能在scanf函数格式串中使用l,不能在printf函数格式串中使用.
当读写long double类型的值时,在e f 或g前放置字母L:
long double ld;
scanf("%Lf",&ld);
printf("%Lf",ld);
7.3 字符型
转换说明%c允许scanf函数和printf函数单独对一个字符进行读/写操作:
char ch;
scanf("%c",&ch);
printf("%c",ch);
C语言还提供了读写单独一个字符的其他方法.
ch=getchar();
putchar(ch);
当执行程序时,使用getchar和putchar比scanf和printf更省时间.
一个习惯的用法是
while (getchar()!='\n')
;
7.4 sizeof运算符
sizeof(char)的值始终为1. sizeof运算符可以应用于常量 变量和表达式.
7.5 类型转换
在下列情况下会进行隐式类型转换(常用算术转换).
当算术表达式或逻辑表达式中操作数的类型不相同时
当赋值运算符右侧表达式的类型和左侧变量的类型不匹配时.
当函数调用中使用的参数类型与其对应的参数的类型不匹配时.
当return语句中表达式的类型和函数返回值的类型不匹配时.
常用算术转换的策略是把操作数转换成可以安全的适用于两个数值的最狭小的数据类型.
通常可以将相对狭小类型的操作数转换成另一个操作数的类型来实现(这就是所谓的提升)
强制类型转换
7.6 类型定义
可以用宏来定义布尔类型
#define BOOL int
另外一个更好的设置布尔型的方法是利用所谓的类型定义(type definition)
typedef int Bool;
然后可以用Bool来声明其他的变量
Bool flag;
类型定义是编写可移植程序的一种重要工具.
阅读(379) | 评论(0) | 转发(0) |