程序printf (FORMAT,FORMAT);实现过程如下:
在编译时,将FORMAT用"%s! C is cool!\n"替换,变成:printf ("%s! C is cool!\n","%s! C is cool!\n");
执行时,由于第一个格式控制字符%s的存在,第一个%s会被后面的字符串“%s! C is cool!\n”替代。实际打印输出的字符串应为:“%s! C is cool!\n! C is cool!\n”
我明白你是想输出两个FORMAT,
但是printf (FORMAT,FORMAT);是把第二个FORMAT作为字符串输出
表现在第一个FORMAT里就是"FORMAT! C is cool!\n"
printf ("%s\n",string);你都没理解清楚这个函数。
是第一个 %s 被后面的内容 %s! C is cool!\n 所代替。
第二行的%s被第一行替代了