简单c++问题就一个题目,有点小疑惑,请求解答!在先等!!

#include<iostream>usingnamespacestd;voidmain(){chars[]="123\t456\00089",*p=s;cout<<*(... #include<iostream>
using namespace std;
void main()
{
char s[]="123\t456\00089",*p=s;
cout<<*(p+5)<<endl;
cout<<(p+5)<<endl;
}
这样输出的答案是5和56,5 这个答案我知道!但是56 就不懂了呢?望帮个忙!!
展开
 我来答
灵_火
2008-12-14 · TA获得超过178个赞
知道答主
回答量:121
采纳率:0%
帮助的人:104万
展开全部
第一个输出的意思是:指针p向后移动5位,然后输出该指针指向的内存数据(内存数据是char类型)

第二个输出的意思是:指针p向后移动5位,然后输出该指针指向的内存数据以及内存数据之后的所有数据,直到遇到空字符,也就是 '\0'.(内存数据是char类型)

不知道你看懂没……

不懂的话,先记住就行了,学习C++一段时间后,就后会慢慢理解的。
a1012756477
2008-12-14
知道答主
回答量:51
采纳率:0%
帮助的人:0
展开全部
cout<<*(p+5)<<endl;
cout<<(p+5)<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是亚勇啊
2008-12-14 · TA获得超过232个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:123万
展开全部
*(p+5)指的是字符数组S中的第6个字符,也就是5.
但是cout<<p+5<<endl;就是输入从P+5后面的字符串。要知道p是地址,p+5也是地址。cout对地址操作,输出的就是以那个地址为起始的字符串,输出字符串遇到0为止。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ooooo825
2008-12-14 · TA获得超过248个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:316万
展开全部
p是指向s这个字符串的.
cout<<p+5<<endl;就从5往后开始输出,到\0结束.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuzhenrao
2008-12-14 · 超过40用户采纳过TA的回答
知道答主
回答量:179
采纳率:0%
帮助的人:149万
展开全部
*p=s即指针P指向S的起始地址,你如果输出p,则会输出123 456

同理,p+1指向s[1]结果输出 23 456

再同理,p+5指向s[5]结果输出 56
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式