C布尔逻辑

san*_*101 3 c c# boolean-logic

我一直在尝试使用C语言编写一些程序并且遇到这个......

#include<stdio.h>
int main()
{
    int j = 3, k;
    k= !5 && j;
    printf("%d", k);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以弄清楚这是什么问题,如果我编译程序,我会得到0

当我在c#中尝试相同的代码

public void logic()
{
    j = 5;
    k = !4 && j;
    Console.WriteLine("hence the value would be " + k);
}
Run Code Online (Sandbox Code Playgroud)

这将生成错误*(错误1运算符'!'不能应用于'int'类型的操作数C:\ Documents and Settings\SANDEEP\My Documents\Visual Studio 2005\Projects\ConsoleApplication18\ConsoleApplication18\Program.cs 21 17 ConsoleApplication18)

我想知道为什么我的c代码的输出不起作用,我怎么能使用!运营商在c#..... plz帮助....

Tho*_*mas 9

5当解释为布尔值为true时,因此!5给出布尔结果false,这也导致&&false.虚假解释为int0.


Jos*_*Lee 9

在C中,任何非零值(例如5被认为是"真")因此!5评估为0或"假".因此,0 && 3也是错误的.C中的逻辑运算符.

在C#中,类型系统在这方面稍强一些.所述!操作者仅适用于类型的值bool,这是完全独立于整数类型.看!C#中的运算符.