我可能不理解sprintf
函数。
char s[30];
int i;
scanf("%d",&i);
sprintf(s,i); /*->warning: makes pointer from int*/
答案 0 :(得分:2)
sprintf 接受目标char[]
作为第一个参数,其余参数是same as printf
, or scanf
's(首先是格式字符串,然后是其他参数)。 / p>
所以,在你的情况下,它只是:
char s[30];
int i;
scanf("%d",&i);
sprintf(s, "%d", i);
如果输入为3,则s
将变为“3”。
使用sprintf(s, "%d%d", i, i);
,它将变为'33'。
它试图将i
解释为示例中的指针的原因是期望 a(char)指针(格式字符串)。