printf(“%s”, p);

来源:百度文库 编辑:神马文学网 时间:2024/07/08 06:14:33
#include
void main()
{ char str[10]={'a','b','c','d'},*p;
p=str;
puts(p);
}#include
void main()
{ char *p="microsoft";
printf("%s",p);
}
这两个程序的指针P不都是赋的首地址么? 但为什么在打印时只打印P就可以打印里面的所有元素了啊? 请高手详细解释一下!
.........................................................
☆ 其它 回复: 只是首地址就能打印出所有元素的原因在于puts和printf+%s
puts就是接受字符串首地址作参数的
printf的%s也对应字符串首地址
所以它们知道怎么处理这个地址,实现起来就是遍历这个地址开始之后的字节并输出,直到遇到'\0'为止
文章来源: 脚印网 详细出处参考:http://www.jyday.cn/12884.html