如果我们有
char *val = someString;
然后说
if(val){
....
}
这里实际检查的if
语句是什么?
答案 0 :(得分:5)
答案 1 :(得分:2)
正在查看if (val != 0)
。在C中,所有非零值都为真,零为假。
答案 2 :(得分:2)
val
是指向char的指针。这可以设置为任何地址 - 有效或无效 - 。 if语句只检查val是否为null:
if(val)
相当于
if(NULL != val)
相当于
if((void*)0 != val)
仍然,指针可以指向无效的位置,例如不在应用程序的地址空间中的内存。因此,将指针初始化为0非常重要,否则它们将指向未定义的位置。在最坏的情况下,该位置可能有效,您将不会注意到该错误。
答案 3 :(得分:1)
它正在测试val是否包含NULL指针。如果你说过,
char * val = NULL;
if ( val ) {
...
}
测试会失败。
答案 4 :(得分:1)
val是否为空指针。
答案 5 :(得分:1)
该声明正在检查与val
相同的someString
是否为非NULL
。通常if (v)
是if (v!=0)
的快捷方式。
答案 6 :(得分:1)
只是检查val是否为NULL。
答案 7 :(得分:1)
正如其他人所说,它正在检查char指针是否为NULL。如果要检查字符串是否为空,请尝试strlen。
答案 8 :(得分:0)
val是一个指针,该语句等于if(val!= 0),而0也定义为NULL,因此它将检查该指针是否指向NULL地址,请记住NULL字符串指针是与空字符串不一样
答案 9 :(得分:0)
上面的if条件是检查指针是否指向非空字符串。如果该指针指向任何非空字符串,则条件为true.Else,false。