Sai*_*hul 1 c assignment-operator
#include <stdio.h>
int main()
{
int i,j;
i=j=(22,23,24);
printf("i:%d",i);
printf("\nj:%d",j);
}
Run Code Online (Sandbox Code Playgroud)
这将 i,j 的输出都设为 24。
#include <stdio.h>
int main()
{
int i,j;
i=j=22,23,24;
printf("i:%d",i);
printf("\nj:%d",j);
}
Run Code Online (Sandbox Code Playgroud)
这使 i,j 都为 22。有人可以解释背后的术语吗。TIA
赋值运算符的=优先级高于逗号运算符,。
在这份声明中
i=j=(22,23,24);
Run Code Online (Sandbox Code Playgroud)
(22,23,24)首先计算。在22和23由逗号运营商忽略,它被评价24。然后,将结果24赋给j,并将值也赋给i。
另一方面,在这个声明中
i=j=22,23,24;
Run Code Online (Sandbox Code Playgroud)
i=j=22首先计算。这将分配22给j,然后将值分配给i。之后,赋值运算符的计算结果22和整数文字23将被逗号运算符忽略。最后,表达式被计算为 value 24,它也被忽略。