为什么使用`%s`来使用`printf`打印字符串而不是直接打印它更好?

时间:2015-01-21 10:28:15

标签: c string printf

我知道printf的声明是:

int printf ( const char * format, ... );

这意味着可以直接打印字符串而不是使用%s并将字符串作为参数。请参阅以下代码:

char str[50];
char *ptr;
//initialize str and ptr

printf(str);  //BAD
printf(ptr);  //BAD
printf("%s",str);  //GOOD
printf("%s",ptr); //GOOD

我已经读过,如前两个printf所示,直接打印字符串是不好的,应该总是避免这样做。相反,使用最后两个%s中显示的printf更好。它们都正确地打印了两个字符串。

那么,为什么使用%s使用printf打印字符串而不是直接打印它更好呢?
当一个人不使用%s使用printf打印字符串时会出现什么问题?

0 个答案:

没有答案