为什么我应该使用“%d”代替“%i”作为C中整数的转换说明符?

时间:2012-07-07 17:11:28

标签: c integer

  

可能重复:
  Difference between format specifiers %i and %d in printf

这个问题的动机是我用来在我读过的所有C代码中看到这个偏好的事实。

3 个答案:

答案 0 :(得分:3)

%d and %i

在printf中的含义相同,即int;带符号的十进制表示法 但在scanf

%d表示十进制整数,int *和%i表示整数; int *整数可以是八进制(前导0)或十六进制(前导0x)。

答案 1 :(得分:0)

id转换说明符与fprintf相同,但它们与fscanf不同。

所有C标准(C89,C90,C11)都有id

di更常见,因此我更倾向于d使用fprintf

答案 2 :(得分:0)

据我所知,%d表示base-10(d表示DECImal),i是基本灵活的(您可以使用修饰符来表示八进制或十六进制)。所以,你应该使用d,如果你不想考虑它,你总是想要base-10