可能重复:
Difference between format specifiers %i and %d in printf为什么我应该用“%d”代替“%i”作为C中整数的转换说明符?
这个问题由我用看到这种偏好在所有的C代码我读过的事实的动机。
可能重复:
Difference between format specifiers %i and %d in printf为什么我应该用“%d”代替“%i”作为C中整数的转换说明符?
这个问题由我用看到这种偏好在所有的C代码我读过的事实的动机。
i
和d
转换说明符与fprintf
等效,但它们与fscanf
不同。
i
和d
都存在于所有C标准(C89,C90,C11)中。
d
比i
更常见,所以我宁愿使用d
代替fprintf
。
非常感谢您,我刚刚阅读了scanf的手册页,并且检查了您刚输入的内容。 – EPadronU 2012-07-07 17:20:06
据我所知,%d意味着base-10(d代表DECImal),而我是基础灵活的(可以使用修饰符来表示八进制或十六进制)。所以,你应该用d,如果你不想去想它,而你总是希望基地-10的printf即INT
%d and %i
均值相同;签署十进制表示 但在scanf
% d代表十进制整数,int *和%i代表整数; int *整数可以是八进制(前导0)或十六进制(前导0x)。
@Aravindhanarvi我想他们想要一些快速的声誉?他们需要增加声誉来找到重复。这个问题显然是一个重复,但没有人投票结束。 – Hogan 2012-07-07 17:40:48