C语言 main() {int a[5]={1,2,3,4,5},b[4]={6,7,8,9},*p=a,*q=b}

main(){inta[5]={1,2,3,4,5},b[4]={6,7,8,9},*p=a,*q=bp+=2;q+=3;*p=*(q)+3;q--;*(q-1)=*(p... main()
{int a[5]={1,2,3,4,5},b[4]={6,7,8,9},*p=a,*q=b
p+=2;q+=3;
*p=*(q)+3;
q--;
*(q-1)=*(p+1)-5;
printf("%d\n",*p);
printf("%d|n",*q);
}
求具体推导过程 谢谢
展开
 我来答
半截小丑
推荐于2017-07-29 · TA获得超过2017个赞
知道小有建树答主
回答量:548
采纳率:60%
帮助的人:180万
展开全部
main()  
{int a[5]={1,2,3,4,5},b[4]={6,7,8,9},*p=a,*q=b//p指向a的首地址,即1,q指向b,即6
  p+=2;q+=3;//p地址后移2位,指向3,q同理指向9
  *p=*(q)+3;//赋值语句,将q指向的内容加3赋给p,则p指向的值3变成12,q依旧为9
      q--;//q地址前移1位,即8
   *(q-1)=*(p+1)-5;//将p指向位置的下一位的内容即4减去5得-1,赋给q的前一位,则q的前一位变成-1,但q的指向位置没有改变
printf("%d\n",*p);//输出p的内容,即为12
printf("%d|n",*q);//输出q的内容,即为8

这里涉及到很多小知识点,如果不理解,欢迎追问,若满意,请采纳,谢谢
苗蓝强令枫
2020-04-08 · TA获得超过3694个赞
知道大有可为答主
回答量:3177
采纳率:30%
帮助的人:182万
展开全部
int
a[
]={0,1,2,3,4,5,6,7,8,9}:意思是a数组为包含{0,1,2,3,4,5,6,7,8,9}的整数数组,
int
a[
]={0,1,2,3,4,5,6,7,8,9},*p=a:p是等效于a的整数指针,你应该这样读int
*p
=a;(*号跟着变量走)定义了一个指针等于a数组首地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2015-01-03 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6450万
展开全部
你应该自己推导,哪里挡住了你的思路,再提问,这样对你理解知识有帮助!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伦悦宜yS
2015-01-03 · TA获得超过674个赞
知道小有建树答主
回答量:769
采纳率:100%
帮助的人:374万
展开全部
p+=2;q+=3;p指针指向a[2],q指针指向b[3]

*p=*(q)+3;把a[2]换成12
q--;q指针指向b[2]
*(q-1)=*(p+1)-5;b[1]换成-1
printf("%d\n",*p);输出12

printf("%d|n",*q);8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liu68180410
2015-01-03
知道答主
回答量:11
采纳率:0%
帮助的人:2.9万
展开全部
*p=a 表示指针p指向数组a的首地址即第一个元素;*q=b指针q指向数组b的首地址即第一个元素;
p+=2表示数组a的第三个元素,q+=3表示b数组的第四个元素。因此*p=3,*q=9;
*p=*(q)+3;这一句是把数组的第三个元素修改为7;此时a={1,2,12,4,5}

q--;此时q应指向数组b的第三个元素

*(q-1)=*(p+1)-5;这一句是修改b中第二个元素为a中第四个元素的值减去5因此b={6,-1,8,9}

一次输出的结果应为12,8;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式