gpt4 book ai didi

c++ - C 代码的意外输出

转载 作者:太空狗 更新时间:2023-10-29 19:40:58 26 4
gpt4 key购买 nike

这个程序的输出是什么?

#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
int x=20,y=30,z=10;
int i=x<y<z;
printf("%d",i);
getch();
}

实际上 i=20<30<10 ,所以条件为假,i 的值为应该是 0 但 i等于 1。为什么?

最佳答案

int i=x<y<z;无法按您预期的方式工作。

效果是int i=(x<y)<z; , 其中x<y首先计算,值 true然后与 z 进行比较.


Pascal 在下面指出,在 C 中比较的结果是 1而不是 true .但是,C++ true隐式转换为 1在接下来的比较中,结果是一样的。

关于c++ - C 代码的意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6226381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com