将逗号运算符的结果用作左值在 C 中是无效的。但在 C++ 中,如果逗号运算符的右操作数是左值,则逗号运算符的结果可以用作左值。
例如,如果我们将以下程序编译为 C++ 程序,那么它可以工作并打印 b = 30。如果我们编译与 C 程序相同的程序,那么它会在编译时给出警告/错误(在 Dev C++ 中出现警告,在代码块)。
#include<stdio.h>
int main()
{
int a = 10, b = 20;
(a, b) = 30; // Since b is l-value, this statement is valid in C++, but not in C.
printf("b = %d", b);
getchar();
return 0;
}
C++ 输出:
b = 30