假设b = (a=5,a+1,a++); 是不是相当于b=a++;呢?
时间: 2024-04-26 11:26:43 浏览: 69
Merge-linked-list.zip_linked list A B C
不,表达式 "b = (a=5,a+1,a++)" 并不相当于 "b = a++"。
在这个表达式中,逗号运算符被用来连接多个表达式,并且整个表达式的结果将是最后一个表达式的值。所以,先执行 a=5,然后执行 a+1,最后执行 a++。
但是,在赋值操作中,赋值的结果是被赋的值本身,所以整个表达式的结果将是 a++ 的值,并且 a 的值也会自增。
而 "b = a++" 则是先将 a 的值赋给 b,然后再自增 a 的值。所以这两个表达式是不相等的。
可以通过以下代码来验证:
int a = 0;
int b = (a=5,a+1,a++);
System.out.println(b); // 输出结果为 6
int c = 0;
int d = a++;
System.out.println(d); // 输出结果为 6
System.out.println(a); // 输出结果为 7
阅读全文