书目《C程序设计(第三版)》
关键字([]表示可省略) | 最小字节数 | 范围 |
---|
bool | 1 | |
wchar_t | 2 | |
[signed] char | 1 | -128 ~ 127 |
unsigned char | 1 | 0 ~ 255 |
[signed] int | 2或4 | - 32 768 ~ 32 767或-2 147 483 648 ~ 2 147 483 647 |
unsigned int | 2或4 | 0 ~ 65 535或0 ~ 4 294 967 295 |
[signed] short [int] | 2 | - 32 768 ~ 32 767 |
unsigned short [int] | 2 | 0 ~ 65 535 |
[signed] long [int] | 4 | -2 147 483 648 ~ 2 147 483 647 |
unsigned long [int] | 4 | 0 ~ 4 294 967 295 |
float | 4 | (-3.4E+38) ~ (3.4E+38) |
double | 8 | (-1.7E+308) ~ (1.7E+308) |
long double | 10 | (-1.2E+4932) ~ (1.2E+4932) |
- 汇总2——常用转义字符
控制字符在屏幕上是不能显示的,在程序中也只能用转义字符来表示。
字符形式 | 含义 | ASCII码 |
---|
\n | 换行,将当前位置移到下一行开头 | 10 |
\t | 水平制表(跳到下一个Tab位置) | 9 |
\b | 退格,将当前位置移到前一列 | 8 |
\r | 回车,将当前位置移到本行开头 | 13 |
\f | 换页,将当前位置移到下页开头 | 12 |
\ \ | 代表一个反斜杠字符“\” | 92 |
\ ’ | 代表一个单引号字符 | 39 |
\ " | 代表一个双引号字符 | 34 |
\ddd | 1到3位八进制数所代表的字符 | |
\xhh | 1到2位十六进制数所代表的字符 | |
- 汇总3——C语言运算符
1、C语言的运算符范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理;
2、C编译系统在处理时是从左到右地,尽可能多地将字符组成运算符,比如i+++j,其实是(i++)+j;
3、多数系统中对函数参数的求值顺序是从右到左的,例如printf("%d,%d",i,i++);中,输出应为“4,3”。
运算符 | 运算符类型 |
---|
* / + - % | 算术运算符 |
< <= > >= == != | 关系运算符 |
&& || ! | 逻辑运算符 |
& | ^ ~ >> << | 位运算符 |
= | 赋值运算符 |
? : | 条件运算符 |
, | 逗号运算符 |
* & | 指针运算符 |
sizeof | 求字节数运算符 |
(类型) | 强制类型转换运算符 |
. -> | 分量运算符 |
[] | 下标运算符 |
++ - - | 自增/自减运算符 |
+= -= *= /= %= <<= >>= &= ^= |= | 复合赋值符 |
函数调用运算符()等 | 其他 |
优先级 | 运算符类型 | 运算符 | 结合律 |
---|
最高 | 关键(基本)运算符 | () [] . -> | 从左到右 |
| 一元运算符 | ++ - - & * ! ~ | 从右到左 |
| 算术运算符 | * / % | 从左到右 |
| 算术运算符 | + - | 从左到右 |
| 位运算符 | << >> | 从左到右 |
| 关系运算符 | < <= > >= | 从左到右 |
| 关系运算符 | == != | 从左到右 |
| 位运算符 | & | 从左到右 |
| 位运算符 | ^ | 从左到右 |
| 位运算符 | | | 从左到右 |
| 逻辑运算符 | && | 从左到右 |
| 逻辑运算符 | || | 从左到右 |
| 条件运算符 | ? : | 从右到左 |
| 赋值运算符 | = | 从右到左 |
最低 | 逗号运算符 | , | 从左到右 |
int a = 123;
int b = 456;
printf("%4d, %4d", a, b);
1、除了X\E\G外,其他格式字符必须小写;
2、可以在格式控制字符串中包含转义字符;
3、格式字符均以%开头,d\o\x\u\c\s\f\e\g\作为结尾,中间可插入附加格式说明字符;
4、想输出百分号,必须写成“%%”。
格式字符 | 含义 |
---|
d,i | 以带符号的十进制形式输出整数(正数不输出符号) |
o | 以八进制无符号形式输出整数(不输出前导符0) |
x | 以十六进制无符号形式输出整数(不输出前导符0x),输出字母时按照其小写形式 |
X | 以十六进制无符号形式输出整数(不输出前导符0x),输出字母时按照其大写形式 |
u | 以无符号十进制形式输出整数 |
c | 输出一个字符 |
s | 输出一个字符串 |
f | 以小数形式输出单、双精度,隐含输出6位小数 |
e | 以指数形式输出实数,指数以“e”表示,如1.2e+02 |
E | 以指数形式输出实数,指数以“E”表示,如1.2E+02 |
g | 选用%f或者%e格式中宽度较短的一种格式进行输出,不输出无意义的0 |
G | 选用%f或者%E格式中宽度较短的一种格式进行输出,不输出无意义的0 |
附加格式说明字符 | 含义 |
---|
l | 用于长整型整数,可加在格式符d,o,x,u前面 |
m(代表一个正整数) | 数据最小宽度 |
n(代表一个正整数) | 对实数,表示输出n位小数;对字符串,表示截取的字符个数 |
- | 输出的数字或字符在域内向左靠 |
int a, b;
scanf("%d%d", &a, &b);
1、输入时如果没有指定间隔符,两个数据之间可以以一个或者多个空格间隔,也可以用Enter键或者Tab键间隔;
2、输入数据时不能指定精度;
3、采用%c格式输入字符时,空格和转义字符都是有效输入。
格式字符 | 含义 |
---|
d,i | 用来输入有符号的十进制整数 |
u | 用来输入无符号的十进制整数 |
o | 用来输入无符号的八进制整数 |
x,X | 用来输入无符号的十六进制整数,大小写作用相同 |
c | 用来输入一个字符 |
s | 用来输入一个字符串到一个字符数组中,以非空白字符开始,以第一个非空白字符结束,(自动)以结束标志’\0’作为最后一个字符 |
f | 用来输入实数,可以以小数形式或指数形式输入 |
e,E,g,G | 与f作用相同,可以互相替换,大小写作用相同 |
附加格式说明字符 | 含义 |
---|
l | 加在格式符d,o,x,u前面用于输入长整型整数,加在格式符f或者e前面用于输入double类型数据 |
h | 加在格式符d,o,x前面用于输入一个短整型数据 |
域宽m | 指定输入数据所占宽度,m应为正整数 |
* | %后面跟*表示跳过它指定的列数 |