飞羽先生 发表于 2015-10-27 14:53:31

这是为嘛啊??关于printf的

#include <stdio.h>

int main ()

#define FORMAT "%s! C is cool!\n"
{
        printf ( FORMAT,FORMAT );
}

为什么打印出来第二行就没有%s了??有哪位知道??谢谢了

小甲鱼 发表于 2015-10-27 15:18:01

宏定义只是简单的替换,因此便是:

printf ("%s! C is cool!\n", "%s! C is cool!\n");

printf 第一个参数通过 % 指定可变参数的数量和类型,%s 表示字符串,即将后边的 "%s! C is cool!\n" 引用到前边 %s 的位置,即:

"%s! C is cool!\n! C is cool!\n"

所以,如你所见!

飞羽先生 发表于 2015-10-27 15:43:30

小甲鱼 发表于 2015-10-27 15:18
宏定义只是简单的替换,因此便是:

printf ("%s! C is cool!\n", "%s! C is cool!\n");


哦哦,就是相当于一个“”,谢谢哈
页: [1]
查看完整版本: 这是为嘛啊??关于printf的