当编译器读到123456时会把它当成十进制整数常量,
与123456不同,“123456”是字符串常量,“123456”的值是一个字符型指针(char *)
%d输出十进制数,可以输出十进制常量或变量或整型表达式,
%s输出字符串,遇到字符串末尾的 ‘\0’ (NUL)时停止输出,可以输出(char *)类型指针所指向的字符串。
正确的用法应该这样:
#include "stdio.h"
main(void)
{
static char *s1 = "string 1";
char s2[] = "string 2";
char s3[128];
sprintf(s3,"%d,%s,%s,%s\n",123456,"123456",s1,s2);
return 0;
}
用%s,还是用%d主要取决于你需要格式化的变量类型。
也就是后面待的参数,123456是int型所以用%d。
如果是“123456”则用%s
%s代表字符串,%d代表十进制整数.
char s[50]; sprintf(s,