为了账号安全,请及时绑定邮箱和手机立即绑定

请教各位一个问题,求解答:c 指针运算的过程求解答!

请教各位一个问题,求解答:c 指针运算的过程求解答!

绝地无双 2019-06-20 10:43:22
代码如下:#include#defineMAX10inti_array[MAX]={0,1,2,3,4,5,6,7,8,9};int*i_p,count;floatf_array[MAX]={.0,.1,.2,.3,.4,.5,.6,.7,.8,.9};float*f_p;intmain(void){i_p=i_array;f_p=f_array;for(count=0;count
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

i_p=i_array;*i_p=i_array[0];*i_p++=*(i_p+1)=*i_p+sizeof(int)*1=i_array[1]
                            
查看完整回答
反对 回复 2019-06-20
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

在c语言中后缀自增++的优先级高于解引用*的优先级,所以先做++,再*,即*(ip++),c语言运算符可以参考这里;自增操作有两种情况,如果++符号在后面ip++,则ip先进行复制返回,再执行ip=ip+1,如果++符号在前面++ip,则执行ip=ip+1,然后返回。所以*ip++可以看成两步:(1)返回*ip的值;(2)根据ip的类型移向下一个元素;代码中printf输出的就是第(1)步中的值。如果ip指向比较复杂的类型,则++ip省去复制的操作会更加高效;可以参考这里
                            
查看完整回答
反对 回复 2019-06-20
  • 2 回答
  • 0 关注
  • 292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号