c++指针指向小问题

#include<iostream>usingnamespacestd;intmain(){chara[]="hello";char*p=a;cout<<p;return... #include<iostream>
using namespace std;
int main()
{
char a[]="hello";
char* p=a;
cout<<p;
return 0;
}
p不是指向字符数组的首地址吗?怎么p输出是hello?
展开
 我来答
starking1983
2014-01-02 · TA获得超过277个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:66.5万
展开全部
C++里为了省去我们循环输出字符的麻烦,cout<<p<<endl;被翻译为输出p指向的字符串值。
这个时候要输出p的指针值就只能先将其转为void *再输出。因为void型, cout没法输出,只能乖乖输出指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MarsCode
2024-08-21 广告
在C++编程中,我们常利用类的封装、继承与多态性来构建高效、可维护的程序。例如,设计一个`Student`类,包含姓名、年龄和成绩作为成员变量,并定义成员函数来设置和获取这些值。通过构造函数初始化对象,使用成员函数实现对学生信息的操作。C+... 点击进入详情页
本回答由MarsCode提供
戈鲁多ap444
2014-01-02 · TA获得超过115个赞
知道答主
回答量:45
采纳率:0%
帮助的人:29.3万
展开全部
是的,你是输出了一个地址,一整个字符串的地址。
如果想输出字符数组的首地址,应该cout<<*p;
输出第二个字符数组,应该cout<<*p(1);
如此类推

还有,你应该记住数组和指针几乎是相通的,但指针更强大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2014-01-02 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:5980万
展开全部
当cout<<检测到p是一个字符串的首元素地址时,它就从地址p开始一个字符一个字符地依次输出,直到碰到字符串结束符'\0'为止。这是赋于C的输出控制符"%s"和C++的输出流cout <<的输出方式和书写语法……。C/C++操作字串都只要首地址信息。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
枫叶无痕attack
2014-01-02 · 超过27用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:70.3万
展开全部
你的指针指向了字符数组 a 如果你想输出第一个字符 cout<<*p 这样就是输出 h 而不会输出hello
追问
我指向不是一个地址么?怎么把hello全输出来了?
追答
但是你输出的值这个字符数组的所有地址,并不是首地址 虽然你指向的值首地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式