Tag: 条件语句

有人在C中有一个条件语句的例子吗?

像这样的东西,我想看到完整的语法。 伪代码: var = user_input if var > 5: output = ‘var > 5’ else: output = ‘var < 5'

检查指针是否为空是否安全,然后在同一if语句中取消引用它?

如果传入空指针,以下代码是否安全? if(ptr && *ptr == value) { //do something } 检查的顺序是否重要? 如果我改成它,它会起作用吗? if(*ptr == value && ptr) { //do something }

C ++三元运算符执行条件

我不确定C / C ++三元运算符的执行保证。 例如,如果给出一个地址和一个布尔值来告诉该地址是否适合阅读,我可以使用if / else轻松避免错误读取: int foo(const bool addressGood, const int* ptr) { if (addressGood) { return ptr[0]; } else { return 0; } } 但是,三元运算符( ?: addressGood可以保证除非addressGood为真,否则不会访问ptr ? 或者优化编译器是否可以生成在任何情况下访问ptr代码(可能使程序崩溃),将值存储在中间寄存器中并使用条件赋值来实现三元运算符? int foo(const bool addressGood, const int* ptr) { // Not sure about ptr access conditions here. return (addressGood) ? ptr[0] : 0; } […]

C错误:int之前的预期表达式

当我尝试以下代码时,我得到了提到的错误。 if(a==1) int b =10; 但以下在语法上是正确的 if(a==1) { int b = 10; } 为什么是这样?

C中的复合条件:if(0.0 <a <1.0)

我最近注意到以下表达式在我的编译器(Clang)中编译: float a; if (0.0 < a < 1.0) { … } 这是否符合我的期望? 我希望它的评估条件与此条件相同: if (0.0 < a && a < 1.0) { … } 如果是这样,那么从何时以及与其他编译器一起编写这种简短forms的条件?