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 {
//
}
C/C++中的 if(指针变量) 和 if(!指针变量)的更多相关文章
- java 对象变量 c++对象指针 初始化对象变量的2中方法
java 对象变量 c++对象指针 java null引用 c++ null指针 Date deadline 是 对象变量,它可以引用Date类型的对象,但它不是一个对象,实际上它也没有引用对象. ...
- C++中指针常量和常量指针的区别
在C++学习使用过程中,每个人都不可避免地使用指针,而且都或多或少的接触过常量指针或指针常量,但是对这两个的概念还是很容易搞糊涂的. 本文即是简单描述指针常量和常量指针的区别. 常量指针 定义: 又叫 ...
- Delphi 中的结构体与结构体指针
好多程序都给结构体变量设定了一个结构体指针 例如: PAbc = ^TAbc; TAbc = record a: string[10]; b: string[5]; c: string[1]; end ...
- 深入理解C语言中的指针与数组之指针篇
转载于http://blog.csdn.net/hinyunsin/article/details/6662851 前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本 ...
- Delphi动态事件深入分析(对象方法在调用的时候会传递一个隐含的Self指针,而该指针的值在EAX中。即左边第一个参数)
Delphi动态事件深入分析 2009-2-7 作者:不得闲核心提示:本实验证明了在类中方法的调用时候,所有的方法都隐含了一个Self参数,并且该参数作为对象方法的第一个参数传递... 首先做一个空窗 ...
- 浅析c语言中的变量(局部变量,外部变量,静态变量,寄存器变量)[转]
c语言中变量分为四类,分别是 1.auto 自动变量 2.static 静态存贮分配变量(又分为内部静态和外部静态) 3.extern 全程变量(用于外部变量说明) 4.register ...
- 深入理解C语言中的指针与数组之指针篇(转载)
前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在.相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分. 但是之前一方面之前一直在忙各种事情 ...
- C语言中的声明解析规则——数组,指针与函数
摘要:C语言的申明存在的最大问题是:你无法以一种人们所习惯的自然方式和从左向右阅读一个声明,在引入voliatile和const关键字以后,情况更加糟糕了.由于这些关键字只能出现在声明中,是的声明形式 ...
- C/C++中的far和near两个指针
Dos 的设计是基于16位的CPU的,也就是CPU中的每个寄存器(Register)只有16位,只能存放0-65535(64K)的值.为了能访问大于64K的内存,人们用了分段的方法,用两个16位的数来 ...
随机推荐
- [apue] 一个快速确定新系统上各类限制值的工具
对于在不同 Unix 系统之间移植程序,最重要的事情就是确定新系统的一些编译时.运行时固定或不固定的限制值了.例如文件路径最大长度 PATH_MAX.进程最大可打开文件句柄数 OPEN_MAX.用户可 ...
- vc6.0的项目如何在整个项目中查询内容呢?试试vs2015
vc6.0的项目如何在整个项目中查询内容呢?试试vs2015 https://blog.csdn.net/txwtech/article/details/101308795
- java递归遍历树结构目录
目录实体 private int id; private int pid; private String name; 递归遍历方法 private void getTree(Menu menu ,Li ...
- Lucene5多条件查询
lucene是一个很强大的搜索工具,最近公司项目上用到,结合JAVA1234所讲,对多条件查询做出总结 先描述一下我的多条件需求,如果和您的类似,继续往下看. 1.我的Lucene搜索会在很多地方使用 ...
- weui上传多图片,前端压缩,base64编码
记录一下在做一个报修功能的心路历程,需求功能很简单,一个表单提交,表单包含简单的文字字段以及图片 因为使用的是weui框架,前面的话去找weui的表单和图片上传组件,说实话,weui的组件写的还不错, ...
- 利用EasyMock生成数据库连接简单测试示例
package demo.mock; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.Re ...
- Redis持久化机制,优缺点,如何选择合适方式
一.什么是Redis持久化? 持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失. 二.Redis 的持久化机制是什么?各自的优缺点? Redis 提供两种持久化机制 RDB(默认) 和 ...
- 个人项目-Wc-Java
一.Github项目地址: https://github.com/Heiofungfming/xiaoming01 二.PSP表格 PSP2.1 任务内容 计划完成需要的时间(min) 实际完成需要的 ...
- Redis五种数据类型应用场景
目录 1.1 回顾 2.1 应用场景 2.1.1 String 2.1.2 Hash 2.1.3 List 2.1.4 Zet 2.1.5 zset 3.1 小结 1.1 回顾 Redis的五种数据类 ...
- HTML&CSS面试高频考点(三)
11. CSS隐藏元素的方式 /*占据空间,无法点击*/ visibility: hidden; position: relative; top: -999em; /* 不占据空间,无法点击 */ p ...