gpt4 book ai didi

c - 为什么嵌套的if语句在没有条件要求的情况下会输出true?

转载 作者:行者123 更新时间:2023-11-30 20:49:55 25 4
gpt4 key购买 nike

我正在努力处理嵌套的“if 语句”,我不知道为什么在没有条件要求时它显示 true,而当我更改返回值时它显示 false。另外,为什么当我将函数的基本类型从 int 更改为 char 时没有区别?

#include <stdio.h>
#include <strings.h>

int random(char z[]);

int main() {

char *x ="Tup";
char *y ="Nope";
printf("%s\n", x);
printf("%d\n", random("Hi"));


if(random("random char")){
if(x){
printf("True");
}
}else if(y){
printf("False");
}


return 0;
}
int random(char z[])
{
char a[3] ="yak";

return a[0] == 'y';
}

最佳答案

random 函数返回条件 a[0] == 'y' 的结果。由于您将 a 定义为 char a[3] ="yak" 这始终是正确的。

因此,if (random("random char")) 的条件为 true,因此进入 if 部分。然后计算if(x)x 指向字符串常量"Tup",这意味着它具有非零值,导致条件为真。所以“True”就会被打印出来。

关于c - 为什么嵌套的if语句在没有条件要求的情况下会输出true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56603037/

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