`
qimo601
  • 浏览: 3445946 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

空指针/0/NULL

    博客分类:
  • Qt
阅读更多

空指针/0/NULL

空指针是一个被赋值为0的指针,在没有被具体初始化之前,其值为0.

NULL 是一个标准规定的宏定义,用来表示空指针常量。

#define NULL 0   或者

#define NULL ((void*)0)

 

判断一个指针是否为空指针:

f(!p) 和 if(p == NULL) ,if(NULL == p)

最好使用后两种,有些平台NULL不是0,这时候程序就会有问题了。

 

其中if(NULL == p) 与if(p == NULL) 没有区别,前一种是避免错误的写法(后面的容易写成P=NULL,编译器不能发现。而前面的写成NULL=p时会编译不过)。

 

C++里推荐置0指针,这样编译器可检测出0值的指针,程序可判断指针对象为空

 

char* str = "str";
str = 0;
//str = NULL;
if(str == NULL)
	qDebug() << "NULL true";
if(str == 0)
	qDebug() << "0  true";


//两个结果都是:
//NULL true
//0 true
分享到:
评论

相关推荐

    空指针和0、NULL之间的关系

    例如,0、0L、'/0'、3 - 3、0 * 17、(void*)0 等都是空指针常量。需要注意的是,(char*) 0 不是空指针常量,而是一个空指针值。 接下来,让我们看看什么是空指针(null pointer)。如果将一个空指针常量转换为指针...

    C语言中的空指针、空指针常量、NULL &amp; 0.pdf

    判断指针是否为空通常有多种方式,包括比较其与0、'/0'、NULL或其他空指针常量的相等性,或者利用逻辑非操作符!。例如: ```c if (p == 0) // 检查p是否为空 if (p == NULL) // 需要包含 if (!p) // 逻辑非操作符...

    C语言中的空指针、空指针常量、NULL &amp; 0.docx

    在C语言中,空指针、空指针常量、NULL和0是编程时经常会遇到的概念,它们在处理指针时扮演着至关重要的角色。下面将详细解释这些概念及其关系。 1. 空指针常量(null pointer constant): 空指针常量是指具有值为...

    NULL指针、零指针、野指针定义及区别

    常见的空指针常量包括`0`、`0L`、`'\0'`、`3-3`、`0*17`等,这些值都可以用来初始化指针变量,使其指向无效地址。此外,`(void*)0`也被广泛认为是一种表示空指针的方式,尽管它与直接使用`0`有所不同。在C语言中,...

    15.3 调试空指针导致的死机问题.rar

    空指针通常表示为NULL,其值为0,在尝试访问或操作这样的指针时,可能会引发未定义的行为,如程序崩溃或死机。 GD32F303是一款基于ARM Cortex-M3内核的微控制器,它广泛应用于各种嵌入式系统,如物联网设备、工业...

    jar在命令行下运行空指针异常解决

    空指针异常是Java中最常见的运行时异常之一,它发生在尝试访问一个null对象实例的成员变量或调用其方法时。例如: ```java String str = null; System.out.println(str.length()); // 抛出NullPointerException ``` ...

    c和c++中NULL和0的区别

    我们常见的空指针一般指向 0 地址,即空指针的内部用全 0 来表示(zero null pointer);也有一些系统用一些特殊的地址值或者特殊的方式表示空指针(nonzero null pointer)。 最后,需要了解如何判断一个指针是否...

    空指针的定义.doc

    空指针常量通常用`NULL`表示,它是一个特殊的值,表明指针未指向任何有效的内存位置。在C语言中,`NULL`的定义可能因实现而异,但它的目的始终是为了保证指针的安全使用。 在C语言中,空指针可以被初始化为`0`、`...

    java空指针

    2. **对象引用在使用前被设为null**:有时候,在代码的某处,一个原本非空的对象引用可能会因为某些原因被显式地设为`null`,如果后续代码仍然尝试访问这个引用的属性或方法,将导致空指针异常。 3. **数组元素或...

    J2EE编程(action之空指针)

    如果在传递过程中出现了错误,如传递了null值或者对象未正确初始化,也会导致空指针异常。 3. **JSP页面传参失败**:在J2EE应用中,JSP页面常常作为用户交互界面,用户提交的数据通常需要通过表单提交到后端处理。...

    解析C语言中空指针、空指针常量、NULL &amp; 0的详解

    在C语言中,空指针、空指针常量、NULL和0是程序设计中非常重要的概念,它们在处理指针时起到关键的作用。本文将深入解析这些概念及其相互关系。 首先,空指针常量(null pointer constant)是指那些在数值上等于0或...

    C++关于空指针的整理,全部都是自己亲身实践后所整理

    C++语言中空指针的使用是一项重要的技术,在新标准中建议使用nullptr代替NULL来声明空指针,但为什么C++11要引入nullptr?它与NULL相比又有什么不同呢?这篇文章将详细解释空指针的使用和nullptr的引入原因。 首先...

    Dubbo空指针问题测试代码.zip

    在Java编程中,当程序试图访问或操作一个null引用的对象时,就会抛出空指针异常。在Dubbo的上下文中,NPE可能出现在服务调用、参数传递、服务注册与发现等环节。由于Dubbo是基于接口的RPC框架,因此服务提供者和服务...

    解析C语言中空指针、空指针常量、NULL 0的详解

    这里告诉我们:0、0L、’\0’、3 – 3、0 * 17 (它们都是“integer constant expression”)以及 (void*)0 (tyc: 我觉得(void*)0应该算是一个空指针吧,更恰当一点)等都是空指针常量(注意 (char*)

    c和c++中NULL和0的区别.pdf

    在C和C++编程语言中,`NULL`和`0`都经常被用来表示空指针,但它们之间存在一些微妙的区别。以下是关于这些概念的详细解释: 1. **空指针常量(null pointer constant)**:根据C语言标准(C99,ISO/IEC 9899:1999)...

    VC6.0 空指针赋值错误排查,确定错误的行号

    当指针未被初始化或者赋值为NULL时,它就被称为空指针。尝试通过空指针访问或操作内存是不合法的,这通常会导致程序异常终止。在VC6.0中,如果出现空指针赋值错误,编译器可能不会直接指出错误的具体行号,这就需要...

    c和c++中NULL和0的区别.docx

    - 直接与空指针常量进行比较:`if (p == 0)` 或 `if (p == NULL)` - 使用逻辑非运算符:`if (!p)` - 与其他已知为空指针的指针进行比较:`if (p == q)`(其中 q 已经是一个空指针) 这些方法在功能上等效,但风格...

    根据带空指针的先序遍历结果建立二叉树

    本篇将详细介绍如何根据给定的先序遍历序列(其中使用`&`来表示空指针)来构建一颗二叉树,并对这一过程进行深入分析。 #### 核心概念 1. **二叉树**: 是一种树形结构,其中每个节点最多有两个子节点,分别称为左...

    C语言程序设计课程教学探讨——空指针的运用.pdf

    NULL在标准库头文件`&lt;stddef.h&gt;`中被定义为0或者0L,这意味着空指针是一个整数值,不同于普通的指针,普通指针通常存储的是内存地址。 空指针的主要用途体现在以下几个方面: 1. **作为函数调用失败的返回值**:在...

Global site tag (gtag.js) - Google Analytics