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都可以将数字读取为八进制。