自增自减运算符的运算方式和codeblocks编译器的运算方式

<pre name="code" class="cpp">#include<iostream>
using namespace std;
int main()
{
    int a, b=2;

    a=b*3+b++;
    cout<<a<<" "<<b<<endl;

    b=2;
    a=b*3+(b++);
    cout<<a<<" "<<b<<endl;

    b=2;
    a=b+++b*3;
    cout<<a<<" "<<b<<endl;

    b=2;<span style="white-space:pre">			</span>//4
    a=++b+b*3;
    cout<<a<<" "<<b<<endl;

    b=2;<span style="white-space:pre">			</span>//5
    a=++b+(b*3);<span style="white-space:pre">		</span>//注意这里可第四次的比较,即使加了括号,也不会先执行后面的运算
    cout<<a<<" "<<b<<endl;

    b=2;
    a=b*3+ ++b;
    cout<<a<<" "<<b<<endl;
    return 0;
}
 
 
<pre name="code" class="cpp">结果是
8 3
8 3
8 3
12 3
12 3
9 3
由此可以得出自增自减运算分前加和后加,前加是立即执行的运算,后加是下一执行的运算
codeblocks对于同时两个运算都需要用到同一个变量的的运算方式是从左到右执行而不是因为括号的存在而改变,这点很难理解
这样的运算方式和vc的方式正好相反,所以在使用编译器的时候记得了解他的运算方式


 
 
 

你可能感兴趣的:(自增自减运算符的运算方式和codeblocks编译器的运算方式)