char *p=NULL; printf("%s",p); 问题在于C标准规定%s说明符的参数必须是一个指向字符数组的指针,由于NULL并不是一个这样的指针(它是一个指针,但它并不指向一个字符数组),所以这个调用将陷入“未定义行为”。