int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p=[-3]的值是多少?以及为什么?谢谢啊

希望能说一下p[-3]是什么?谢谢!... 希望能说一下p[-3]是什么?谢谢! 展开
 我来答
忽视的发生1
2012-06-08
知道答主
回答量:28
采纳率:0%
帮助的人:15.6万
展开全部
#include<iostream>
using namespace std;
int main()
{
int a[10]={1,2,3,4,5,6,7,8};//a[8],a[9]默认初始化为0

int *p;
p=&a[5];//指针p现在指向数组a中的第六个即a[6];

//p[-3]即表示指针p向前移动三个单位,也就是a[2],注意实际地址变量的值不变,p仍是只想a【5】
cout<<p[-3]<<endl;//输出3
cout<<p[2]<<endl;//p想后移动两个单位,输出8
return 0;
}
加分吧,哥们,很辛苦的,嘿嘿
追问
谢谢啦,
帐号已注销
2012-06-08
知道答主
回答量:6
采纳率:0%
帮助的人:5.6万
展开全部
p=[-3],这个不会出错?
如果是p[-3]就是3;因为为是把数字6的地址给p了,p[-3]就是在a[5]地址上减3,指到 a[2],a[2]的值是 3
追问
不会呀,“-“应该是指左对齐吧,想知道值是多少?
追答
p[-3]的值是3,详细看上面修改的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e8268a2
2012-06-08 · TA获得超过145个赞
知道答主
回答量:88
采纳率:0%
帮助的人:72.7万
展开全部
按照p[0]=a[5],p[-3]=a[2];也就是a[2]=3;
追问
p不是应该是指地址,*p才指地址里存的内容吗?谢谢
追答
*(p+2)与p[2]等价,*(p+0)与p[0]等价
谭浩强的书应该有这个知识点
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yanghuir
2012-06-08 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:171万
展开全部
p[0]是指当前指向的元素,p[-3]就是指前面第三个元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式