可能重复:
Difference between format specifiers %i and %d in printf
这个问题的动机是我用来在我读过的所有C代码中看到这个偏好的事实。
答案 0 :(得分:3)
%d and %i
在printf中的含义相同,即int;带符号的十进制表示法 但在scanf
%d表示十进制整数,int *和%i表示整数; int *整数可以是八进制(前导0)或十六进制(前导0x)。
答案 1 :(得分:0)
i
和d
转换说明符与fprintf
相同,但它们与fscanf
不同。
所有C标准(C89,C90,C11)都有i
和d
。
d
比i
更常见,因此我更倾向于d
使用fprintf
。
答案 2 :(得分:0)
据我所知,%d表示base-10(d表示DECImal),i是基本灵活的(您可以使用修饰符来表示八进制或十六进制)。所以,你应该使用d,如果你不想考虑它,你总是想要base-10