那么NULL又代表了什么?首先NULL的意思是空,空是什么?是没有!在初始化一个指针时,比如:int*a=NULL;这句话的意思是指我们定义了一个“可以”指向整型类型的指针,但是让这个指针暂时不指向一个具体的int类型空间;说白了,就是先生成一个指针,但是不给这个指针赋具体的值!有点抽象?OK,你要知道,指针也是变量,要...
NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将0作为不被使用的地址,所以就有了类似这样的定义 #define NULL 0 但并非总是如此,也有些系统不将0地址作为NULL,而是用其他的地址,所以说,千万别将NULL和0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。
GetSafeValue()内部先判断this是否为null,如果是返回默认值0,否则返回m_nValue值。
NULL表示的只是这个地址为空而已,这个指针变量本身还是要占内存的,32位环境下,指针所占的内存都是4个字节
在C语言中,空指针是指指向空地址的指针,其值为NULL。空指针的地址是指空指针所指向的内存地址,也就是空地址。在C语言中,可以使用空指针的地址,但通常不会主动使用它。空指针的地址通常由编译器自动分配,用于表示一个不存在的指针或者一个未初始化的指针。使用空指针的地址可能会导致程序错误,...
在不同的系统中,NULL并非总是和等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将作为不被使用的地址,所以就有了类似这样的定义 #define NULL 0 但并非总是如此,也有些系统不将地址作为NULL而是用其他的地址,所以说,千万别将NULL和等价起来,特别是在一些跨平台的代码中,这更...
对于 C 来说还可以是 p = (void*)0;), p 都成为一个空指针,由系统保证空指针不指向任何实际的对象或者函数。反过来说,任何对象或者函数的地址都不可能是空指针。(tyc: 比如这里的(void*)0就是一个空指针。把它理解为null pointer还是null pointer constant会有微秒的不同,当然也不是紧要了)
在C语言中,NULL一般有如下定义(在stddef.h中): 1#define NULL ((void*)0) 1. 看起来似乎是一样的?没错从这里看,值确实一样的。 但是,还记得在《void*是一种怎样的存在》中讲到过的吗?虽然它们值是一样的,但是它们的含义不一样。 举个简单的例子: ...
NULL是“零值、等于零”的意思,在C语言中表示空指针。 NULL 是在 stdio.h 中定义的一个宏,它的具体内容为: #define NULL ((void *)0) NULL 指向了地址为 0 的内存,在进程的虚拟地址空间中,最低地址处有一段内存区域被称为保留区, 这个区域不存储有效数据,也不能被用户程序访问,将 NULL 指向这块区域很...
if(cacl() != null){var result = cacl();//use result do something}//如果能更改为这样就好了if(cacl() result !=null){//use result do something}Null 合并运算符 ??该运算符也是非常有用的。如果左操作数的值不为 null,则 null 合并运算符 ?? 返回该值;否则,它会计算右操作数并返回其结果...