Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么%d代表整数?_C_Formatting_Printf - Fatal编程技术网

C 为什么%d代表整数?

C 为什么%d代表整数?,c,formatting,printf,C,Formatting,Printf,我知道这听起来效率不高,但我正在寻找一种方法来记住printf调用的所有格式代码%s,%p,%f都是显而易见的,但我不明白%d从何而来。%i是否已被其他对象占用?它代表“”(以10为基数),而不是“整数”。您可以使用%x打印(以16为基数),使用%o打印(以8为基数)。整数可以是这些基数中的任何一个 在printf()中,如果您更喜欢表示“整数”而不是“小数”,则可以使用%i作为%d的同义词,但%d通常更为具体 在输入时,使用scanf(),您可以同时使用%i和%d%i表示将其解析为任意基数的整

我知道这听起来效率不高,但我正在寻找一种方法来记住
printf
调用的所有格式代码<代码>%s,
%p
%f
都是显而易见的,但我不明白
%d
从何而来。
%i
是否已被其他对象占用?

它代表“”(以10为基数),而不是“整数”。您可以使用
%x
打印(以16为基数),使用
%o
打印(以8为基数)。整数可以是这些基数中的任何一个

printf()
中,如果您更喜欢表示“整数”而不是“小数”,则可以使用
%i
作为
%d
的同义词,但
%d
通常更为具体

在输入时,使用
scanf()
,您可以同时使用
%i
%d
<代码>%i表示将其解析为任意基数的整数(八进制、十六进制或十进制,由
0
0x
前缀表示),而
%d
表示将其解析为十进制整数

下面是所有这些措施的一个例子:

#include <stdio.h>

int main() {
  int out = 10;
  int in[4];

  printf("%d %i %x %o\n", out, out, out, out);
  sscanf("010 010 010 010", "%d %i %x %o", &in[0], &in[1], &in[2], &in[3]);
  printf("%d %d %d %d\n", in[0], in[1], in[2], in[3]);
  sscanf("0x10 10 010", "%i %i %i", &in[0], &in[1], &in[2]);
  printf("%d %d %d\n", in[0], in[1], in[2]);

  return 0;
}
#包括
int main(){
int out=10;
[4]中的int;
printf(“%d%i%x%o\n”,out,out,out);
sscanf(“010”、%d%i%x%o”、[0]、[1]、[2]、[3]中的&;
printf(“%d%d%d%d\n”,在[0]、[1]、[2]、[3]中);
sscanf(“0x10 10 010”、“%i%i%i”、[0]、[1]、[2]中的和);
printf(“%d%d%d\n”,在[0],在[1],在[2]);
返回0;
}
因此,如果希望输入基数依赖于前缀,则应仅使用
%i
;如果输入基数应固定,则应使用
%d
%x
%o
。特别是,前导的
0
将您置于八进制模式这一事实可能会让您赶上。

似乎说,正如我所猜测的,它是十进制的

d,i

int作为有符号十进制数。“%d'和“%i”是 输出,但与scanf()一起用于输入(使用%i)时不同 如果前面有0x,则将数字解释为十六进制,并且 如果前面有0,则为八进制。)


我最好的猜测是小数点是,然而,这是一个具有讽刺意味的+1有趣的问题。虽然这不是一个真正的编程问题,我倾向于关闭这些:)“d”代表“Does代表整数”。很简单。那么真正的问题是“为什么java调用整数‘int’”,当一个长的、一个短的和一个字节。。。也是INT