Java和C++中都有逗号操作符,但是他们的用法差异很大。
Java中的逗号操作符只允许出现在函数的参数列表或者for循环的控制语句中或者定义多个变量,其他地方都不能使用。
而C++中的逗号操作符的定义是顺序执行逗号操作符分隔的各个语句,返回值为最后一条语句的返回值,使用范围不限。
这样我们可以在C++中这样使用逗号操作符:
int a = (1,2); == 2
int b = a++,a++,a++;
return a++,b;
pow((1,2),3) == pow(2,3);
而这些在Java中都是不被允许的。
另外,关于三元操作符 ?:
在C++中可以不需要左值,完全等价于ifelse,也就是 condition? exp1 : exp2 会根据条件执行exp1或exp2
但是在Java中,必须有左值来接受三元操作符的返回值,这就使得exp1或exp2有兼容的返回类型,而不能是一个void的函数语句。
直接点,在java中 1; 是一个非法语句,而在C++中是合法的。而 ; 在java中是合法的,而在C++中同样合法。、
转自:http://hi.baidu.com/sxch/blog/item/7271c20398b44af908fa9396.html