if 语句问题简单

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:22:14
这是啥意思请重点解释if(x=z=y)
#include<stdio.h>
void main()
{
int x=0,y=1,z=0;
if(x=z=y)x=3;
printf("%d,%d,%d\n",x,y,z);
}

x=z=y;
按照=运算符规则应该是从右向左,应该是
z=y;
x=z;
这样x,y,z就都赋值为1

if (x=z=y) x=3;则相当于
if (x) x=3;
因为此事x值为1所以x赋值为三
则此时x,y,z的值分别为3,1,1