繁体   English   中英

有人可以向我解释为什么 c=1 吗?

[英]Can someone explain to me why c=1?

我最近一直在学习 c 并遇到了这个问题。 我明白 b=(a=10)=10 (如果我的思维过程有误,请纠正我)但我不明白为什么 c=1,所以如果有人能向我解释它会很神奇。 谢谢

#include <stdio.h>

int main()
{
    int a = 10;
    int b=(a=10);
    int c=(a==10);
    printf("B %d\n",b);
    printf("C %d\n",c);
}

您将表达式a == 10的结果分配给 c,如果条件为真(a 等于 10)则返回 1,如果条件为假则返回 0。

a = 10是赋值操作,而a == 10是比较。 赋值完成后,赋值返回左操作数的值 在您的情况下,您将值 10 分配给 a,然后返回 a 的值,因此a = 10计算结果为 10。

根据两个操作数是否相等,比较返回 1 或 0。 a == 10的情况下,它们相等,因此整个表达式的计算结果为 1。

a == 10是一个比较,它返回10 由于a值为 10,因此此比较返回1分配给c 因此c值为1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM