C和C++中,自加++自减--都是从右向左运算。

a=++i, 从右向左就是i变量的左边是++,先自增1,即(i+1)运算后给a赋值,--于此相同。

a=i++, 从右向左就是i变量的左边是=,先赋值,然后才到++,即i自增。

即使我们加上括号a=(i++), 也不能改变自右向左结合的顺序。( )无法改变优先级使i先自增。--于此相同。

验证代码如下:(C++代码)

/////////////////////////////////////////////////////////////

#include<iostream>

using namespace std;

int main()

{

    int a=10;

    int b=a++; //++在后,就是先用再加,即先输出在自加1

    cout<<a++<<endl;

    cout<<"JustFor b: "<<b;//验证a++

    cout<<"\nJustFor a: "<<(a++)<<endl;  //加括号也无法改变优先级

    cout<<a<<endl;

    return 0;

}

///////////////////////////////////////////////////////////

输出:

11

JustFor b: 10

JustFor a: 12

13

////////////////////////////////////////////////////////

 

0.0分

1 人评分

  评论区