代码如下:#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 回答
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省去复制的操作会更加高效;可以参考这里
添加回答
举报
0/150
提交
取消