C语言选择结果相关问题

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<stdio.h>
int main(void){
int x =-10, y = 5, z =0;
if (x = y + z)
printf("1");
else
printf("2");
return 0;
}

运行结果及报错内容

1

我的解答思路和尝试过的方法

if (x = y + z)为假,是否根据https://it666.blog.csdn.net/article/details/117656810选择结构中的if第二种形式
如果表达式为真,则执行语句块1,否则执行语句块2
这条和题说不通啊?

我想要达到的结果

根据什么输出的1

if(x == y + z) C语言中的等号是“==”,一个“=”是赋值


#include<stdio.h>
int main(void) {
    int x = -10, y = 5, z = 0;
    if (x == (y + z))
        printf("1");
    else
        printf("2");
    return 0;
}