int a, b, i=10, j=20;
a = (i,j);
b = i,j ;`
当我编译上面的内容时 linux中的程序(g ++)我在第2行收到警告:
逗号的左手操作数无效)
和第3行
(逗号的右侧操作数无效)。
我不明白出了什么问题。
答案 0 :(得分:1)
您认为这一点有什么作用?
a = (i,j);
相当于:
a = j;
编译器只是说当前面的术语没有副作用时使用逗号运算符是没有意义的(即评估i
没有“做”任何事情);鉴于你做了一些毫无意义的事情,它假设你是偶然做到的,并警告你检查......
这与此类形成鲜明对比......
a = (++i, j);
......第一项评估有副作用:i
递增。