关键字

下列标识符被保留作为关键字,且不能用于其他用途:

关键字 关键字 关键字 关键字
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

某些实现还把 fortran 和 asm 保留为关键字。

运算符顺序

运算符 结合性
() [] -> . 从左至右
! ~ ++ -- + - * (type) sizeof 从右至左
* / % 从左至右
+ - 从左至右
<< >> 从左至右
< <= > >= 从左至右
== != 从左至右
& 从左至右
^ 从左至右
| 从左至右
&& 从左至右
|| 从左至右
?: 从右至左
= += -= /= ^= &= ^= |= <<= >>= 从右至左
, 从右至左

转义字符

ANSI C语言的全部转义字符序列如下所示:

转义字符 含义
\a 响铃符
\b 回退符
\f 换页符
\n 换行符
\r 回车符
\t 横向制表符
\v 纵向制表符
\\ 反斜杠
\? 问号
\' 单引号
\" 双引号
\ooo 八进制数
\xhh 十六进制数

格式化字符

格式化字符串由两种类型的对象组成:普通字符(它们被拷贝到输出流)与转换规格说明(它们决定变元的转换和输出格式)。每个转换规格说明均以字符 % 开头,以转换字符结束。在 % 与转换字符这二者之间依次可以有以下转换字符:

格式码 变元类型:转换效果
d, i int: 有符号十进制表示法
o int;无符号八进制表示法(无前导 0)
x, X int;无符号十六进制表示法(无前导0X0x),对0x用abcdef,对0X用ABCDEF
u int;无符号十进制表示法
c int;单个字符,转换为 unsigned char 类型后
s char *;输出字符串直到遇到 \0或者已达到由精度指定的字符数
f double;形如[-] mmm.ddd的十进制浮点数表示法,d的数目由精度确定。缺省精度为6位,精度为0时不输出小数点
e, E double;形如[-]m.d ddddde±xx[-] m .dddd ddE±xx的十进制表示法。d的数目由精度确定,缺省精度为6位。精度为0时不输出小数点
g, G double;当指数值小于-4或大于等于精度时,采用 %e%E格式;否则采用 %f 的格式。尾部的0与小数点不打印
p void *;输出指针值(具体表示与实现有关)
n int *;到目前为止以此格式调用 printf 输出的字符的数目将被写入到相应变元中。
% 不进行变元转换不进行变元转换;输出符号 %