Possible Duplicate:
Difference between format specifiers %i and %d in printf
This question is motivated by the fact I use to see this preference in all the C code I've read.
Possible Duplicate:
Difference between format specifiers %i and %d in printf
This question is motivated by the fact I use to see this preference in all the C code I've read.
%d and %i
在 printf 中表示相同,即 int;有符号十进制表示法,但在 scanf 中
%d 表示十进制整数,int * 和 %i 表示整数;int * 整数可以是八进制(前导 0)或十六进制(前导 0x)。
i
和d
转换说明符对于 是等价的,fprintf
但对于fscanf
.
两者i
都d
存在于所有 C 标准(C89、C90、C11)中。
d
比i
我更喜欢使用d
for更常见fprintf
。
据我了解, %d 表示以 10 为底(d 表示 DECImal),而 i 是灵活的(您可以使用修饰符来表示八进制或十六进制)。所以,如果你不想考虑它,你应该使用 d,并且你总是想要 base-10