%i 与 %d 的唯一区别在于,%i 允许以十六进制、八进制或十进制的形式输入整数值。
- %i 会将 “10” ,解释为十进制整数 10;
- %i 会将 “0x10” ,解释为十六进制整数 16;
- %i 会将 “010”,解释为八进制整数 8。
int i=010; //数字以0开头时,默认为八进制数。i=010 初始化为8
printf("%i", i); //输出 8
int i;
scanf("%i",&i); //输入 010
printf("%i", i); //输出 8