[英]c syntax help - very basic
如果我们有
char *val = someString;
然后说
if(val){
....
}
if
语句实际在这里检查是什么?
它正在检查if (val != 0)
。 在C中,所有非零值都为真,零为假。
val
是指向char的指针。 这可以设置为任何地址 - 有效或无效 - 。 if语句只检查val是否为null:
if(val)
相当于
if(NULL != val)
相当于
if((void*)0 != val)
仍然,指针可以指向无效的位置,例如不在应用程序的地址空间中的内存。 因此,将指针初始化为0非常重要,否则它们将指向未定义的位置。 在最坏的情况下,该位置可能有效 ,您不会注意到错误。
它测试val是否包含NULL指针。 如果你说过,
char * val = NULL;
if ( val ) {
...
}
测试会失败。
val是否为空指针。
该语句检查val
是否与someString
相同,是否为非NULL
。 通常, if (v)
是if (v!=0)
的快捷方式。
它只是检查val是否为NULL。
正如其他人所说,它正在检查char指针是否为NULL。 如果要检查字符串是否为空,请尝试使用strlen 。
val是一个指针,该语句等于if(val!= 0),而0也定义为NULL,因此它将检查该指针是否指向NULL地址,请记住NULL字符串指针不一样作为空字符串
上面的if条件是检查指针是否指向非空字符串。如果该指针指向任何非空字符串,则条件为true.Else,false。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.