【发布时间】:2020-08-20 03:50:25
【问题描述】:
为什么C语言的创造者选择%d作为格式说明符而不是%i?也就是说d和一个整数有什么关系?
【问题讨论】:
-
x - 十六进制。 o - 八进制。 ? - 十进制
标签: c
为什么C语言的创造者选择%d作为格式说明符而不是%i?也就是说d和一个整数有什么关系?
【问题讨论】:
标签: c
%d 代表十进制,而%i 代表整数。两者都是有效的格式说明符。
不同之处在于,对于scanf 和朋友,%i 将匹配具有不同基数的数字(就像您将 strtol 传递给 0 基数一样),但 %d 仅匹配基数为 10 的数字。对于 @ 987654328@也一样。
【讨论】:
%d 仅表示整数十进制文字。 While%i 可以与任何形式的任何整数文字一起使用,例如八进制形式、十六进制形式和十进制形式(显然)。
为了简单起见,我添加了这个例子
#include <stdio.h>
int main()
{
int a;
scanf("%d", a);
scanf("%i", a) ;
return 0;
}
现在,尝试在您的 IDE 中运行该程序,并为第一个 scanf() 语句提供一个十六进制形式的输入,这将立即停止该程序。然而,如果我们在 "%d" 的空间中使用 %i,我们也可以输入十六进制值和八进制值。
【讨论】:
意思是“十进制整数”
【讨论】: