我知道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
打印字符串时会出现什么问题?