c 语言自增与自减

/*
前段时间看完C语言后对自增和自减有理解的不是很好,于是在网上也看了一些相关的帖子。对此总算是将
这个问题解决了!

先看一个简单的;
*/

# include <stdio.h>
void main()
{
    int a, b, c, d;

    a = 5; 
    b = 5;
    
    c = (a++) + (a++) + (a++);
    d = (++b) + (++b) + (++b);

    printf("a = %d, b = %d, c = %d, d = %d\n",a, b, c, d);
}

/*
======================运行结果====================
a= 8, b = 8, c =15, d = 22
Press any key to continue
-------------------------------------------------


======================说明=======================
对于自增和自减这个问题,我觉的最大的问题就在于自增或是
自减的(++ --)在前后的问题了;a++ ; ++b;
++a表示:a自增1后再与他其它运算;
b++表示:b先与其他运算后再自增1;

自减和自增是一样的,我这里就不讲了;


下面再看几个例子;

*/

# include <stdio.h>
void main()
{
    int i = 3; 
    int j = 4;

    i++;
    ++j;

    printf("i = %d, j =%d\n",i, j);
}

/*
========================运算结果==================
i = 4, j =5
Press any key to continue

--------------------------------------------------

========================说明======================
这个例子和上面的那个例子是一样的,可以说是上面的那
个例子的变形;所以这个例子我就不说了!


  好了我们将上面的那个例子稍微改动一下;
*/


# include <stdio.h>
void main()
{
    int i = 3;
    int j = 4;
    int a = i++; //这里我们可以理解成a = 3;
    int b = ++j; //这里我们可以理解成b = (4+1);

    printf("a= %d,b= %d\n", a, b);


/*
========================运算结果==================
a= 3,b= 5
Press any key to continue

--------------------------------------------------

========================说明======================
首先我们再回顾一下自增和自减的概念,然后i++和++j
i++是先将3赋值给a然后再加1。
++j是先将j的值加1后再赋值给b;


下面难度加点了!
*/
# include <stdio.h>
void main()
{
    int i = 3;
    int j = 4;

    int a = (i++) + (i++);
    int b = (++j) + (++j);

    printf("a = %d, b = %d\n", a, b );
}
/*
========================运算结果==================

a = 6, b = 12
Press any key to continue

--------------------------------------------------

========================说明======================
 i++的理解应该是执行完整个表达式的其他操作后,
 然后才自增,所以例子中的a=3+3=6;而后i再自增2次,
 i=5;相反,++j是先自增然后再参加其它运算,
 所以b=6+6=12.
原文地址:https://www.cnblogs.com/flay/p/2487657.html