• 自增自减运算符剖析


    首先简单概括一下自增自减运算符,数字在运算符之前表示先运算后使用,数字在运算符之后表示先用后运算。

    举例说明:

    1 int i = 1;
    2 int j = 1;
    3 int a = ++i; 
    4 int b = j++;

    输出结果是: 

                  a = 2, b = 1, i = 2, j = 2;

    其实这也不是很难的问题,主要是理解就好!

    咱们就再看看一个难一点的:

     1 #include <stdio.h> 
    2 void main()
    {

    3 int a,b,c,d; 
    4     a=1;
    5     b=1; 
    6     c=(a++)+(a++);
    7     d=(++b)+(++b);
    8     printf("a=%d,b=%d,c=%d,d=%d
    ",a,b,c,d); 
    9 } 

     猜猜结果…………

    再看看以下结果: a = 3, b =3, c= 2,d =6.

    如果你算错了,那就再回去看看吧!

    咱们接着再看看:

     1 #include <stdio.h> 
     2 void main() 
     3 {
     4     int a,b,c,d; 
     5     a=1;
     6     b=1; 
     7     c=(a++)+(a++)+(a++)+(a++); 
     8     d=(++b)+(++b)+(++b)+(++b); 
     9     printf("a=%d,b=%d,c=%d,d=%d
    ",a,b,c,d); 
    10 } 

    猜一猜,再看看结果:

    嗯,这是为什么呢?这就是结合性的问题了,,因为存在两个同级的+运算,根据+运算符的左结合性,在编译时,其实是先处理前面的(++b + ++b)这部分,然后再将此结果再和++b相加。

  • 相关阅读:
    springBoot 与 springMVC的区别
    spring的IOC和AOP
    实现同步的三种方法
    台阶积水问题
    requsets模块和beautifulsoup模块
    爬虫
    rabbitMQ 消息队列
    Django框架
    mysql
    jQuery
  • 原文地址:https://www.cnblogs.com/huxianlu/p/3343858.html
Copyright © 2020-2023  润新知