
int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p=[-3]的值是多少?以及为什么?谢谢啊
4个回答
展开全部
#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;
}
加分吧,哥们,很辛苦的,嘿嘿
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;
}
加分吧,哥们,很辛苦的,嘿嘿
追问
谢谢啦,
展开全部
p=[-3],这个不会出错?
如果是p[-3]就是3;因为为是把数字6的地址给p了,p[-3]就是在a[5]地址上减3,指到 a[2],a[2]的值是 3
如果是p[-3]就是3;因为为是把数字6的地址给p了,p[-3]就是在a[5]地址上减3,指到 a[2],a[2]的值是 3
追问
不会呀,“-“应该是指左对齐吧,想知道值是多少?
追答
p[-3]的值是3,详细看上面修改的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按照p[0]=a[5],p[-3]=a[2];也就是a[2]=3;
追问
p不是应该是指地址,*p才指地址里存的内容吗?谢谢
追答
*(p+2)与p[2]等价,*(p+0)与p[0]等价
谭浩强的书应该有这个知识点
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p[0]是指当前指向的元素,p[-3]就是指前面第三个元素
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |