视频讲解参考:
C++笔试知识点分享-自增自减
a++ <==> 逗号表达式 (int temp = a, a = a+ 1, temp)
temp临时量,放在cpu寄存器,相当于一个立即数
++a <==> (a = a+ 1, a) 最后还是原来的内存
所以下面是会编译错误的
int a = 10; a++ = 11;//相当(int t=10,a=11,10) 把立即数赋为11是不行的
这样是对的
int a = 10; ++a = 15; // a = 15小测试 前置小知识
当给出的操作符编译器识别不出时,进行断句,规则是从左向右贪心找一次最长的合法操作符
如: a+++++b 断句后 a++ ++ +b
++a+++b 断句后 : ++a++ +b, 而++a++的运算规则是从右向左, 所以为: ++(a++) +b
int a = 10, b = 10; //判断下面哪个是合法的,结果 cout << a+++++b << endl; //不合法,(a++)后为立即数10,10++不合法 cout << ++a+++b << endl; //不合法,a++后为10,++10不合法 cout << (++a)+++b << endl; //合法,结果21, ++a得到a,此时a为11,a++得到立即数11,11+b得到21



