Data:
%#o, %#x, %#X -> 0, 0x, 0X:产生对应的八进制,十六进制前缀
要使一个小的常量被当做long,可以在后面添加l或L,如7L
打印unsigned int使用%u;h可以用作short类型的前缀,如%hd等
当char和short作为参数被传入一个函数时会被自动转换成int型,float会被转换成double
compiler默认会将浮点数作为double型,要想将一个浮点数作为float,需要在其后添加f或F,如2.3f
使用%e可将浮点数以指数形式打出
使用%p打印地址
sizeof()是获得数据的byte数,类型是size_t,C99和C11使用%zd表示sizeof获得的数据(C的byte是指char的大小,在某些系统中char大于8bit)
char的大小是一个byte
printf输出的数据首先被送到buffer中,当buffer满了,或有newline,或即将进行输入时,buffer中的数据会被送至屏幕
typedef new_type int -> 可以用new_type定义新变量
C的Bool类型:_Bool(在包含了stdbool.h头文件后,可以使用bool)
Formatted Input/Output
当用scanf获得string时,假设name[20],则scanf("%s", name)。注意scanf使用的是地址,所以用name
之所以#define不需要使用分号,是因为替换机制是由预处理器完成的,不是一个C语句
%10d表示打出的数据占10位,在最右。如果想从左边开始的话,应使用%-10d
%5.3d表示数据占5位,3是补零的宽度,即至少显示3位,不够的补零