下列标识符被保留作为关键字,且不能用于其他用途:
| 关键字 | 关键字 | 关键字 | 关键字 |
|---|---|---|---|
| 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;无符号十六进制表示法(无前导0X和0x),对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 输出的字符的数目将被写入到相应变元中。 |
% |
不进行变元转换不进行变元转换;输出符号 % |