我已阅读 this问题,我想补充一点,使用逗号运算符无法完成的事情是什么。这让我很困惑,因为我可以这样做:
int arr[3];
arr[0]=1,arr[1]=2,arr[2]=3;
但是当我这样做的时候:
int arr[3],arr[0]=1,arr[1]=2,arr[2]=3;
它给我一个编译器错误。
我想问一下逗号运算符在实际应用中有什么局限性?
最佳答案
需要注意的是,并非 C 语言中所有逗号的使用都是逗号运算符的实例。将您的第二个示例更改为语法声明:
int a0=1,a1=2,a2=3;
逗号不是运算符,它们只是分隔列表中声明符实例所需的语法。
此外,参数/参数列表中使用的逗号不是逗号运算符。
在我看来,使用逗号运算符几乎总是一个坏主意——它只会造成不必要的混淆。在大多数情况下,使用逗号运算符完成的操作可以使用单独的语句更清楚地完成。
两个很容易想到的异常是在 for
语句的控制子句中,以及在绝对需要将多个“事物”塞进单个表达式中的宏中,甚至这应该只有在没有其他合理选择时才这样做)。
关于c++ - 逗号运算符的局限性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4547305/