gpt4 book ai didi

c - 没有if的if语句?

转载 作者:行者123 更新时间:2023-12-02 07:30:18 24 4
gpt4 key购买 nike

我看到的代码看起来像是在尝试执行一个没有实际 if 的 if 语句,我很困惑它实际上在做什么。例如,

int* value;
int thisValue = 0;
int checkedValue = 1;
*value = thisValue == checkedValue

这实际上是在执行没有 if 的 if 语句吗?

最佳答案

这只是计算一个 bool 表达式。并将其存储在 value 指向的任何内存位置(在您的特定代码段中 value 未分配,因此行为未定义)。

if 允许您根据 bool 表达式的值执行不同的代码。

例如,

if (a == b) {
printf("a and b are the same\n");
}

行为相同:

int same = (a == b);
if (same) {
printf("a and b are the same\n");
}

尽管第一个通常更清晰,除非您有某种理由希望在 if 语句之后使用 same 变量。但第二种更接近 C 代码在编译时将生成的机器指令。

尽管像 == 这样的 bool 比较运算符经常在 if 语句中使用,但没有什么可以强制在那里使用它们.您可以在代码中的任何位置使用 == 运算符来生成 bool 表达式,就像您可以在任何位置使用 + 运算符来生成数值表达式一样。

关于c - 没有if的if语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547396/

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