新闻资讯 NEWS

C语言中(s++)、s++、s++之间有什么区别啊?求高手解答。。

时间:2020-02-29

  

  (*s++) 解引后得到s指向位置的值,将该值作为表达式的结果,然后s指针往后偏移s++ 即s指针往后偏移*s++ 。

  3、继续解析到++,由于*与++是同一优先级,结合性为右到左,所以等同于*(s++);

  4、然后是=,判断为赋值运算符,优先级比++低,因此前面的部分可以直接进行计算。

  (*s++) 解引用得到s指向位置的值,将该值作为表达式的结果,然后s指针往后偏移

  *s++ 解引用得到s指向位置的值,将该值作为表达式的结果,然后s指针往后偏移。和第一个一样。

  (*s)++ 解引用得到s指向位置的值,然后将该值做自加,新值作为表达式的结果值

  当*为乘法时,++优先级大于*;但是当*为指针时,它们优先级相同。

  同样,*--s=e指先s=s-1(指针s指向上一个),再把e赋给*s。

  s++是指地址偏移,偏移一个类型的字节,假如s是int的指针,那就偏移4个字节,数组的话就相当于移到下一个元素。

  *(s++)与*s++主要是优先级的问题了。因为*的优先级高于++ 而又低于()

热门信息

研发总部:北京市海淀区成府路28号 优盛大厦B座8层

研发中心:辽宁省沈阳市铁西区艳璐街金硕园

运营中心:上海市嘉定区汇荣路468号 百度二期B座3层

ICP备案:京ICP备13016506号-1 京公网安备11010802013637号
ZMT数据ZMT值投ZMT淘金联系365体育平台

ICP备案:京ICP备13016506号-1 京公网安备11010802013637号