#include <stdio.h>
int main()
{
char string[]="Programming Language";
printf(string);
printf("\n%s",string);
return 0;
}
输出
编程语言
编程语言
为什么输出相同?
答案 0 :(得分:3)
第一个printf语句与:
相同printf("Programming Language");
和你的第二个printf语句是一样的: (因为'占位符'被变量替换,在开头加上一个新行)
printf("\nProgramming Language");
这就是为什么它是相同的输出
答案 1 :(得分:3)
当printf
解析格式字符串时,它会打印出非格式说明符的字符。
因此,当它解析"Programming Language"
时,它只会回应每个角色。
答案 2 :(得分:2)
他们不一样。第二个包括未包含在第一个中的新行。
如果删除换行符,它们将是相同的,因为:
第一个版本只打印string
。
第二个版本使用%s
,后面会替换为string
的内容。
无论哪种方式,结果都是一样的。
答案 3 :(得分:0)
printf的第一个参数可以包含除修饰符之外的纯文本。所以基本上它等于。当你想在其他例如:
中包含一些字符串时,%s很有用printf ("One Two %s Four Five (%d, %d, %d, %d, %d)", "Three", 1, 2, 3, 4, 5);
单独使用%s修饰符毫无意义。只需要记住一件事 - 如果您没有使用%s修饰符并将字符串作为第一个参数传递,则应引用%符号。 E.g:
printf ("I am 100%% sure that it would works!");
所以基本上只需要单个%符号就可以使用double%(%%)。即使在你将它作为变量传递的情况下:
char s [] = "50%% complete";
printf (s);
希望它能有所作为!