自增/自减运算符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自增/自减运算符相关的知识,希望对你有一定的参考价值。

因为做以下题有感。。。原来简单的自增运算符也有这么多猫腻

http://blog.csdn.net/zdarks/article/details/8767087 第五题

 参考:c程序设计语言2.8  

Vs2015测试:

a[6]={0};t=h=0;

a[0]=a[0]++

  

1

a[1]=++a[1]

  

1

a[2]=t++

  

0

a[3]=++h

  

1

COUT<<a[4]++

  

0

COUT<<++a[5]

  

1

  1. 自增自减只能作用于变量,不能作用于表达式
  2. 在不需要使用任何具体值且仅需要递增变量的情况下,前缀与后缀方式相同。
  3. 首先考虑的是,
    1. 前缀先赋值,后自增
    2. "++"优先级大于"="
    3. 并且,4.a的优先级高于4。b
      1. a[0]=a[0]++,先是将a[0]赋值给a[0],然后执行a[0]的自增,所以a[0]的最终值为1
      2. a[1]=++a[1],a[1]先自增为1,再赋值给a[1];最终为1
      3. a[2]=t++,如i,不过t先赋值给a[2],再自增。所以a[2]=0;t=1;
      4. 以下同理,只要遵循4.a/4.b即可。

         

以上是关于自增/自减运算符的主要内容,如果未能解决你的问题,请参考以下文章

自增、自减运算符的使用?

在C语言中自增自减运算符有啥作用?

java自增自减运算符

Java 自增自减运算符和移位运算符介绍

JAVA自增自减运算符,i++,++i

Javascript自增自减运算符