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

c 指针运算的过程

c 指针运算的过程

小唯快跑啊 2019-05-20 09:59:56
代码如下:#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 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

i_p=i_array;*i_p=i_array[0];*i_p++=*(i_p+1)=*i_p+sizeof(int)*1=i_array[1]
                            
查看完整回答
反对 回复 2019-05-20
?
largeQ

TA贡献2039条经验 获得超7个赞

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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信