<1>%d与%i:
(1).在printf格式中使用,没有区别。
(2).在 scanf 格式串中使用时,区别如下:
a.在scanf格式中,%d 只与十进制形式的整数相匹配。
b.而%i 则可以匹配八进制、十进制、十六进制表示的整数。
<2>%f与%lf
double类型输入用%lf,输出用%f。
float类型不管是输入还是输出都用%f
float有四字节空间,而double类型有8字节空间,但是两者有自己专门的数据排列格式,所以float不可以用double替代。
<3>%c与%s
char a;%c对应类型为char,单个字符
%s对应类型为char * , 即字符串。
例如:
char b[20];
scanf("%c",&a); //只能输入一个字符。
scanf("%s",b); //不超过20字符的字符串,字符串下标为0~19。用作输入时, 二者参数都要传char*类型。
输入:%c输入函数只会对一个字节空间赋值. 而%s会一直赋值,直到输入中遇到空白字符为止.
输入的时候scanf("%c", &a);这里的&不能少,而scanf("%s",s);这里不能有&符号
输出: %c传char类型,输出一个字符. %s传char*类型参数, 输出到\0为止.
·
————————————————