本文主要是介绍23. C 语言,%d 和 %i的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在 C 语言中,%d
和 %i
都用来打印十进制整数。虽然它们在大多数情况下是可以互换使用的,但还是有一些细微的区别,特别是在解析输入时:
%d
和 %i
的区别
-
打印时的区别:
- 对于打印整数的操作,
%d
和%i
没有区别。它们都可以用来输出十进制整数。
#include <stdio.h>int main() {int number = 123;printf("Using %%d: %d\n", number);printf("Using %%i: %i\n", number);return 0; }
上面的代码输出将是:
Using %d: 123 Using %i: 123
- 对于打印整数的操作,
-
输入时的区别:
- 当使用
scanf
函数读取整数输入时,%i
可以识别不同的进制(十进制123、八进制012、十六进制0x12),而%d
只能读取十进制数。
#include <stdio.h>int main() {int num;printf("Enter an integer (use 0x for hex, 0 for octal): ");scanf("%i", &num); // Using %i for inputprintf("You entered: %d\n", num); // Output in decimalreturn 0; }
- 如果用户输入
0x1A
,%i
会将其识别为十六进制数(26 的十进制表示)。如果用户输入012
,%i
会将其识别为八进制数(10 的十进制表示)。而%d
只会读取十进制数,因此0x1A
或012
输入时会被视为无效。
- 当使用
总结
- 打印时:
%d
和%i
功能相同,都用于输出十进制整数。 - 输入时:
%i
更灵活,能够识别不同的进制(十进制、八进制、十六进制),而%d
仅用于读取十进制整数。
这篇关于23. C 语言,%d 和 %i的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!