C语言中的%d和%i格式说明符之间的差异。
格式说明符
在C编程语言中,%d和%i是格式说明符,其中%d将变量类型指定为十进制,%i将类型指定为整数。在使用方面,printf()
使用%d或%i打印数字时函数输出没有差异,但是使用scanf会出现差异。scanf()
函数使用%i检测底数,但使用%d假定底数为10。
范例(C)
#include <stdio.h> int main() { int num1 ,num2; int num3, num4; scanf("%i%d",&num1 , &num2); printf("%i\t%d\n",num1, num2); num3 = 010; num4 = 010; printf("%i\t%d",num3, num4); return 0; }
输出结果
32767-498932064 8 8
010是八进制数。scanf使用%d读取数字为10,使用%i读取数字为8。在两种情况下,printf都可以将数字读取为八进制。