我知道声明printf是:
int printf ( const char * format, ... );
Run Code Online (Sandbox Code Playgroud)
这意味着可以直接打印字符串而不是使用%s和字符串作为参数.请参阅以下代码:
char str[50];
char *ptr;
//initialize str and ptr
printf(str); //BAD
printf(ptr); //BAD
printf("%s",str); //GOOD
printf("%s",ptr); //GOOD
Run Code Online (Sandbox Code Playgroud)
我已经读过直接打印字符串,如前两个printfs所示是坏的,应该总是避免这样做.相反,使用%s最后两个printfs中显示的更好.它们都正确打印两个字符串.
那么,为什么使用%s打印字符串printf而不是直接打印它更好呢?
当一个人不使用%s打印字符串时会出现什么问题printf?