printf("%s",q);的语句为何能输出hello这样的字符串呢?这不是指针q的问题,而是printf("%s",q);中控制符%s在发挥作用,它的解释是“从q指向的那个字符开始,一个接一个地把字符打印到屏幕上,直到碰到'\0'为止,且不输出'\0'“。