Notes
-
c语言提供两大数据类型:整数类型和浮点数类型
-
getchar()函数读取下一个输入字符
-
常量可以使用带小数点的数
-
printf()中使用%f处理浮点值,%.2f指定输出的浮点数只显示小数点后两位。
-
c语言的数据类型关键字如下:
| K&R的关键字 | C90标准添加的关键字 | C99标准添加的关键字 |
|---|---|---|
| int | signed | _Bool |
| long | void | _Complex |
| short | _Imaginary | |
| unsigned | ||
| char | ||
| float | ||
| double |
-
int 关键字表示基本的整数类型,long、short、unsigned、signed用于提供整数类型的变式
-
E记数法:比如3.16E7表示3.16×10^7
-
ISO C规定int的取值范围最小为-32768~32767
int dogs, cats = 94;
/* 有效,但是这种格式很糟糕
不要把初始化的变量和未初始化的变量放在同一条声明中!
*/
-
printf("%d", var);其中%d被称为转换说明,它指定了printf()应该使用什么格式来显示一个值。 -
以十进制显示数字用%d;以八进制显示数,使用%o;以十六进制显示数,使用%x。另外如果要显示各进制数的前缀0、0x和0X,必须分别使用%#o、%#x、%#X。
-
int和short(short int的简称)和long(long int的简称)和long long(long long int的简称)都是有符号类型
-
在任何有符号类型前加上关键字
signed,表示强调使用有符号类型的意图。 -
现在个人计算机上最常见的设置是:
long long占64位,long占32位,short占16位,int占16位或32位。 -
要将一个较小的常量作为
long类型对待,可以在值的末尾加上l或L后缀。如果系统支持long long类型的话,可以使用ll或LL后缀来表示long long类型的值。 -
printf()函数使用%u显示unsigned int类型的值,打印long类型的值使用%ld转换说明,如果系统中int和long大小相同,则使用%d就行。%lx表示以十六进制格式打印long类型整数,%lo表示以八进制格式打印long类型整数。%hd表示以十进制显示short类型的整数,%ho表示以八进制显示short类型的整数,h和l前缀都可以和u一起使用,表示无符号类型的short类型和long类型。
# 有无符号类型总结
1.有符号类型:short,int,long,long long
2.无符号类型:unsigned short,unsigned int(简称unsigned),unsigned long,unsigned long long
# 转换说明符总结
%d 表示以十进制显示int类型整数(int类型就是有符号类型)
%ld 表示以十进制显示long类型整数(long类型是有符号类型)
%hd 表示以十进制显示short类型整数(short类型是有符号类型)
%u 表示以十进制显示unsigned int类型整数(unsigned int 或简称 unsigned,其为无符号类型)
%o 表示以八进制显示int类型整数
%x 表示以十六进制显示int类型整数
%lx 表示以十六进制显示long int(简称long)类型的整数
%ho 表示以八进制显示short int(简称short)类型的整数
%lo 表示以八进制显示long int(简称long)类型的整数
%lu 表示以十进制显示unsigned long int类型的整数
%lld 表示以十进制显示long long类型的整数
%llu 表示以十进制显示unsigned long long类型的整数
-
注意:在使用
printf()函数的时候,切记检查待打印值是否和转换说明的类型相匹配。 -
char类型用于存储字符,初始化时用单引号将单个字符括起来(用单引号括起来的单个字符被称为字符常量)。
# 但是字符实际是以数值形式存储的,所以也可以用数字代码值来给char类型变量赋值
char grade = 65;
# 但是最好是使用字符常量,不是数字代码值,因为在ASCII码中,65对应字母'A',但是前提是系统使用ASCII码。
-
对于char类型的变量,转换说明符为%c;不过我发现也可以用%c转换说明符打印int类型的变量,此时打印出的字符即为int变量值所对应的字符。是的,转换说明符决定了数据的显示方式,而不是数据的存储方式。
-
char类型在有的编译器里实现为有符号类型(那么能表示范围即-128 ~ 127),在有的编译器实现为无符号类型(能表示范围为0 ~ 255)。
-
默认情况下,浮点型常量被编译器视为
double类型的常量,在浮点数后面加上f或F后缀可覆盖默认设置。使用l或L后缀使得数字称为long double类型。 -
c语言有三种浮点型变量,float、double、long double。 -
printf()函数使用%f转换说明打印float和double类型浮点数,用%e打印指数计数法的浮点数,打印long double类型要使用%LF、%Le或者%La转换说明。 -
sizeof是c语言的内置运算符,以字节为单位给出指定类型的大小。c99和c11提供%zd转换说明匹配sizeof的返回类型。一些不支持c99和c11的编译器可用%u或%lu代替%zd。