如果char是指针而int不是?如何使用sprintf()将int转换为char []?

时间:2016-11-28 20:28:48

标签: c

我可能不理解sprintf函数。

char s[30];
int i;

scanf("%d",&i);
sprintf(s,i); /*->warning: makes pointer from int*/

1 个答案:

答案 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)指针(格式字符串)。