Java 与 C++ 在表达式运算下的一点异同
Java 与 C++ 在表达式运算上的一点异同
1. java
public class Main{ public static void main(String[] args){ int a = 10, b =20; a = (++b) + 0*(b = 2); System.out.println("a=" + a + ", b=" + b); // a=21, b=2 a = (b++) + 0*(b = 8); System.out.println("a=" + a + ", b=" + b); // a=2, b=8 } }
2. c++
#include <iostream> using namespace std; int main(int argc,char *argv[]){ int a = 10, b = 20; a = (++b) + 0*(b = 2); printf("a=%i, b=%i\n", a, b); // a=2, b=2 a = (b++) + 0*(b = 8); printf("a=%i, b=%i\n", a, b); // a=8, b=9 system("pause"); return 0; };
1 楼
dyccsxg
2010-12-25
貌似运算过程是
1. java
从左往右 (计算变量并用具体值依次替换b)
2. c++
从左往右 (计算变量b)
从右往左 (用具体值依次替换掉b)
1. java
从左往右 (计算变量并用具体值依次替换b)
2. c++
从左往右 (计算变量b)
从右往左 (用具体值依次替换掉b)