none
a==b==c表示什么意思? RRS feed

  • 问题

  • 程序如下:if(a==b==c) printf(“1”);

    请问这里if当中的条件表示什么? 它似乎并不表示a==b且b==c。

    谢谢!

    2016年9月25日 3:55

全部回复

  • 这样的实际含义是:

    if (a==b) ==c

    那么:a==b是一个布尔值。

    然后用布尔值匹配是否等于c(布尔值在C++中应该可以隐式转换为:true表示1,false一定是0)。

    所以:

    1)a==b(如果true,返回1,用1==c再次比较)。

    2)a不等于b(返回0,用0==c比较)

    但是Borland C++和Visual C++编译器到底是从左到右,还是从右到左是不同的。

    所以有两个大的可能:

    a) a==(b==c)

    b) (a==b)==c

    这个是有歧义的。但是肯定不是三个连续比较,c或者c++没有类似语法。


    ASP.NET Forum
    StackOverFlow
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download


    2016年9月25日 5:58