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
本文探讨了Java和C++中逗号操作符及三元操作符的使用差异。在C++中,逗号操作符能用于顺序执行多个表达式,并返回最后一个表达式的值;而Java中的逗号操作符用途受限。此外,C++中的三元操作符无需左值即可使用,而Java则必须有左值接收其返回值。
3015

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



