如题所述
可以不是,但是最终结果按逻辑值来解
你完全可以这么写
int *p=(int *)malloc(sizeof(int));
if(!p)
{...}
事实上很多程序里也有这样的用法。
p仅仅是一个指针,不是逻辑表达式。这个语句就是判断p的内存分配是否成功了。如果内存分配失败,则p为假,!p为真,就要执行一些善后的语句了。
你完全可以这么写
int *p=(int *)malloc(sizeof(int));
if(!p)
{...}
事实上很多程序里也有这样的用法。
p仅仅是一个指针,不是逻辑表达式。这个语句就是判断p的内存分配是否成功了。如果内存分配失败,则p为假,!p为真,就要执行一些善后的语句了。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-09-09
任意表达式,只要()里的是非零就要执行if()语句;是零就不执行.
关系表达式成立是1,不成立是0;逻辑表达式成立是1,不成立是0;算术表达式的值是非0就是执行,0就不执行.
关系表达式成立是1,不成立是0;逻辑表达式成立是1,不成立是0;算术表达式的值是非0就是执行,0就不执行.
第2个回答 2010-03-26
按逻辑值来解