设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 313|回复: 9
打印 上一主题 下一主题

字符指针

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 00:49:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
还有一点不明白
为什么
cout<<字符指针
为什么能把所有内容输出
按理讲应该是第一个呀
cout后面传递的不是一个地址吗
可cout<<*P;
就是输出第一个
而*P不是第一个的内容吗
2#
发表于 2009-11-3 00:49:14 | 只看该作者
cout&lt;&lt;*p;一般是输出数组的第一个值,因为p一般都是指向数组的第一个地址的。
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 00:49:15 | 只看该作者
例如cout<<x;
这里x不就是传递个地址值吗
而如果指针指向第一个
那为什么
char*p="hi";
cout<<p;
就能输出hi,而不是h
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 00:49:17 | 只看该作者
*p传递的是“h"第一个值
而p传递的是整个字符串的地址 我是个菜鸟 请高手给点评价 看看我对这位兄弟的解释可否通过
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 00:49:18 | 只看该作者
以下是引用heliujin在2006-4-1 8:21:00的发言:
*p传递的是“h"第一个值
而p传递的是整个字符串的地址 我是个菜鸟 请高手给点评价 看看我对这位兄弟的解释可否通过
完全正确处

在cout<<后面就是这样
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 00:49:20 | 只看该作者
同上
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-3 00:49:22 | 只看该作者
就像数组差不多,cout<<p的话,P指向的是数组的首地址,所以全部输出,如果想输出一个就只能是*p
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-3 00:49:25 | 只看该作者
还可以这样输出:
while(*p!='\0')
cout<<*p++<<endl;
呵呵
回复 支持 反对

使用道具 举报

9#
发表于 2009-11-3 00:49:29 | 只看该作者

我想说的事他的机制
你们说的我都知道
我就想知道为什么
跟踪的话P指的就是第一个
为什么却能全输出
回复 支持 反对

使用道具 举报

10#
发表于 2009-11-3 00:49:33 | 只看该作者
cout<<字符指针
是对字符串输出的一种操作....
在运行过程中,系统自动使字符指针加1指向下一个字符,直至字符串的结束标志'\0'.....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 00:02 , Processed in 0.096378 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表