📜  C语言中的%d和%i格式说明符之间的区别(1)

📅  最后修改于: 2023-12-03 14:40:27.844000             🧑  作者: Mango

C语言中的%d和%i格式说明符之间的区别

在C语言中,%d和%i都是格式化输出整数的格式说明符,但是它们之间有一些区别。

%d格式说明符

%d用于格式化输出带符号的十进制整数。例如:

int num = -123;
printf("The number is %d", num); // 输出:The number is -123

%d格式说明符用于将一个整数作为带符号的十进制数输出。如果整数为正数,则输出不带符号;如果整数为负数,则输出符号“-”。

%i格式说明符

%i也用于格式化输出带符号的十进制整数,和%d具有相同的功能,但是在使用时需要注意以下几点:

  • %i可以处理八进制和十六进制数字。在输出时,如果输入的数字以0开头,则被认为是八进制数;如果以0x开头,则被认为是十六进制数。例如:
int num = 0x10; // 十六进制数字16
printf("The number is %i", num); // 输出:The number is 16
  • %i还可以处理符号为'+', '-'或空格的数字。与%d不同,%i不会始终输出符号。例如:
int num = 123;
printf("The number is %+i", num); // 输出:The number is +123

在这个例子中,%+i指示输出数字并且带上符号。

总结
  • %d用于格式化输出带符号的十进制整数。如果整数为正数,则输出不带符号;如果整数为负数,则输出符号“-”。
  • %i也用于格式化输出带符号的十进制整数,和%d具有相同的功能,但是可以处理八进制和十六进制数字,以及处理符号为'+', '-'或空格的数字。