首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个程序的逻辑是什么?

问这个程序的逻辑是什么?
EN

Stack Overflow用户
提问于 2013-12-19 18:21:26
回答 2查看 295关注 0票数 1

我在书中遇到了一个问题,它要求我写出以下程序的输出。

代码语言:javascript
复制
#include<stdio.h>

int main()
{
     int j=4;
     ( !j != 1 ? printf("\nWelcome") : printf("GooD Bye"));
     return 0;
}

我无法从根本上理解欢迎程序是如何在运行程序上打印的。有谁能在操作符层次结构的帮助下解释一下,编译器根据表达式计算什么值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-19 18:23:13

线

代码语言:javascript
复制
( !j != 1 ? printf("\nWelcome") : printf("GooD Bye")); 

等于

代码语言:javascript
复制
if(!j != 1)
    printf("\nWelcome);
else
    printf("Good Bye");  

这里,!j的计算结果为0,因此条件!j != 1将始终为true,并将打印Welcome。

票数 7
EN

Stack Overflow用户

发布于 2013-12-19 18:23:52

是啊,C的混乱!!

在c !j中,Ok计算为0,因为它不是0,所以0=1是真的,因为三元运算的真实部分被执行,并打印“迎宾”。

因此,为了重新估价:

!4 =0/或任何数字

!0 =1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20688932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档