HEL*_*PLZ 3 c for-loop comma-operator
这两个代码是否相同?for循环中的这些语句写在用逗号分隔的同一行中.他们会从左到右进行评估吗?
此外,我想问我可以使用逗号分隔的for循环内的语句.喜欢(i = 0,j = 0,k = 0; .......)?
for(i=0, j= strlen(s)-1; i<j; i++, j--){
c=s[i];
s[i]=s[j];
s[j]=c;
}
Run Code Online (Sandbox Code Playgroud)
和
for(i=0, j= strlen(s)-1; i<j; i++, j--)
c=s[i],s[i]=s[j],s[j]=c;
Run Code Online (Sandbox Code Playgroud)
C逗号运算符计算两个操作数中的每一个,丢弃第一个结果并返回第二个操作数.对于多个逗号,运算符是左关联的,因此效果是从左到右的评估.
因此,您的第二个示例将与您的第一个示例完成相同的操作.但是它的风格很差,因为没有理由使用逗号运算符,这与语句i=0, j-strlen(s)-1正文中的内容不同for,后者无法使用分号.