C/C++中的 if(指针变量) 和 if(!指针变量)

if(指针变量)

当把一个指针作为条件表达式时,所要判断的条件实际上就是“该指针是否为一空指针”。
在if,while,for或do/while等语句中,或者在条件表达式中,都可以使用指针。

代码演示 if(指针变量)

解读代码

if (指针) {
    // 不是空指针 执行这个
}else {
    //指针 是一个空指针, 执行这个
}

if(!指针变量)

解读代码

注意看上面,我让她打出的是p 不是pointer!

if (!指针) {
    // 如果指针是空指针  !指针后 那么条件就成立了。也就是会执行这个地方的语句
}else {
     // 如果指针不是空指针  !指针后 那么条件相当于false了。也就是会执行这个地方的语句
}

总结

if(指针)
主要用来判断如果指针非空指针的时候,进行需要的操作

if(p){
    //指针不为空,满足我们需要的条件,继续进行需要的操作
    //xxxxx 
}else {
     // 指针为空了,进行相应的操作,终止操作,结束程序之类的。
}

if(!指针)
主要用来判断如果指针是空指针的时候,进行出错处理和return 出去。说明有错误了


if(!p){
// 只有指针为空,才会进入此部分,那么进行出错处理之类的。
 // xxxxx 
} else {
     // 一般没有else
}

替代方案。推荐写法!!!!!

如果没有写习惯,是不是很不习惯!对的,我感觉有点反常人类思维。

下面的是不是更加清晰好理解呢。 一看就明白去哪个分支去执行。

if (nullptr == p) {
    //
} else {
    // 
}
if (nullptr != p) {
    //
} else {
    // 
}

posted on 2019-11-21 16:51  JindouBlog  阅读(8390)  评论(0编辑  收藏  举报

导航