假设我有这段代码
if ((p = malloc(int)) == null) { do something }
else { do something else with p }
我知道语法可能不正确,但是,如果说,如果if语句中的条件不正确且不等于null,并且我们继续进行else语句,那么如果我尝试使用
p
,仍将malloc(int)
分配为p
else语句中的malloc(int)
?还是必须在else语句中再次将p
分配给ojit_code? 最佳答案
逻辑如下
if ((p = malloc(sizeof(int))) == NULL)
{
// Here p is equal to NULL
// skip the else statement
} else {
// Jump here if the allocation was successful and p is not equal to NULL
}
因此,如果您将正确使用括号,则首先分配
p = malloc(sizeof(int))
在检查条件之前进行评估。
关于c - 在if语句中,如果我给变量赋值,是否必须在else语句中再次做?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40943542/