i++与++i的区别:
i++是先赋值,后自增;
++i是先自增,后赋值。
案例1
#include <iostream>
int main()
{
int x = 2;
int y = 6;
x = y++; // x = 6, y = 7;
// ++x = y++; // x = 6, y = 7;
std::cout << "x 的值为:" << x << std::endl;
std::cout << "y 的值为:" << y << std::endl;
return 0;
}
原理图:

案例2
#include <iostream>
int main()
{
int x = 2;
int y = 6;
x = ++y; // x = 7, y = 7;
// ++x = ++y; // x = 7, y = 7;
std::cout << "x 的值为:" << x << std::endl;
std::cout << "y 的值为:" << y << std::endl;
return 0;
}
原理图:

案例3
#include <iostream>
int main()
{
int x = 2;
int y = 6;
x++ = y++; // error
// x++ = ++y; // error
std::cout << "x 的值为:" << x << std::endl;
std::cout << "y 的值为:" << y << std::endl;
return 0;
}
原理图:

注意:
++、–等运算的操作数必须为一个变量;因此(x+y)++是错误的——(x+y)不是变量,是表达式。

1359

被折叠的 条评论
为什么被折叠?



