新微赢技术网

标题: 字符指针 [打印本页]

作者: 孤单一个人    时间: 2009-11-3 00:49
标题: 字符指针
还有一点不明白
为什么
cout<<字符指针
为什么能把所有内容输出
按理讲应该是第一个呀
cout后面传递的不是一个地址吗
可cout<<*P;
就是输出第一个
而*P不是第一个的内容吗
作者: FIFA2007    时间: 2009-11-3 00:49
cout&lt;&lt;*p;一般是输出数组的第一个值,因为p一般都是指向数组的第一个地址的。
作者: 小华﹖    时间: 2009-11-3 00:49
例如cout<<x;
这里x不就是传递个地址值吗
而如果指针指向第一个
那为什么
char*p="hi";
cout<<p;
就能输出hi,而不是h
作者: 藤蘿下的陽光    时间: 2009-11-3 00:49
*p传递的是“h"第一个值
而p传递的是整个字符串的地址 我是个菜鸟 请高手给点评价 看看我对这位兄弟的解释可否通过
作者: 熾天使rose    时间: 2009-11-3 00:49
以下是引用heliujin在2006-4-1 8:21:00的发言:
*p传递的是“h"第一个值
而p传递的是整个字符串的地址 我是个菜鸟 请高手给点评价 看看我对这位兄弟的解释可否通过
完全正确处

在cout<<后面就是这样
作者: 藤蘿下的陽光    时间: 2009-11-3 00:49
同上
作者: 泪在爱上雕刻    时间: 2009-11-3 00:49
就像数组差不多,cout<<p的话,P指向的是数组的首地址,所以全部输出,如果想输出一个就只能是*p
作者: 爱你    时间: 2009-11-3 00:49
还可以这样输出:
while(*p!='\0')
cout<<*p++<<endl;
呵呵
作者: 淺藍銫dē爱    时间: 2009-11-3 00:49

我想说的事他的机制
你们说的我都知道
我就想知道为什么
跟踪的话P指的就是第一个
为什么却能全输出
作者: 简单快乐    时间: 2009-11-3 00:49
cout<<字符指针
是对字符串输出的一种操作....
在运行过程中,系统自动使字符指针加1指向下一个字符,直至字符串的结束标志'\0'.....




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2