NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将0作为不被使用的地址,所以就有了类似这样的定义 #define NULL 0 但并非总是如此,也有些系统不将0地址作为NULL,而是用其他的地址,所以说,千万别将NULL和0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。
有人喜欢使用NULL作为空指针常量使用,例如:int* p = NULL;。 也有人直接使用0值作为空指针常量,例如:int* p = 0;。 前者可能觉得:NULL作为空指针常量,名字很形象,可读性较强。 后者可能觉得:NULL并不是C/C++语言的关键字,而是一个在标准库头文件<stddef.h>中定义的宏,因此要使用NULL,可能需要直接或简介...
NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将0作为不被使用的地址,所以就有了类似这样的定义 #define NULL 0 但并非总是如此,也有些系统不将0地址作为NULL,而是用其他的地址,所以说,千万别将NULL和0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。
C语言不对0和NULL做严格的区分主要是为了简化语言设计、提高代码简洁性和可读性。尽管在某些情况下这可能...
NULL 本质也是0,在C语言中,NULL是一个宏定义,通常被定义为一个空指针常量(通常是0或者(void *)0)。它通常用于表示一个空指针,即指向没有特定对象的指针。所以一般用于指针初始化。 null(或者NUL) 通常指的是空字符或者空指针,实质上的作用相当于\0 ...
在C语言中,NULL 和0 在很多情况下可以互换使用,但它们之间确实存在一些细微的区别和不同的应用场景。以下是对这两者的详细解释: 1. 定义与类型 NULL: NULL 是一个宏定义,通常在 <stddef.h> 或<stdio.h> 头文件中定义(具体取决于编译器)。 它通常被定义为 (void *)0,表示一个空指针。 类型是 void *,...
c语言中null是0吗 编程皇帝 在C语言中,NULL通常被定义为0或(void*)0的指针,用于表示空指针或无效指针。在指针的上下文中,NULL和0是等价的,都可以用来表示一个指针不指向任何有效的内存地址。 然而,在非指针的上下文中,NULL和0是不同的。NULL是一个指针类型的值,而0是一个整数值。如果你尝试在非指针的上下文...
所以,如果不是为了便于对地址进行便捷的间接寻址,甚至都不需要设计出指针这种类型及相应的配套语法。而NULL的本意就是一个非法的指针,根本就不打算让你正常的寻址使用的,所以只要固定一个特异值做标识就行了——而这个特异值自然就是个整型(强转为void*,只是一个让它可以隐式转为任何类型指针的语法小技巧而已)。
NULL和0的值都是⼀样的,但是为了⽬的和⽤途及容易识别的原因,NULL⽤于指针和对象,0⽤于数值 对于字符串的结尾,使⽤'\0',它的值也是0,但是让⼈⼀看就知道这是字符串的结尾,不是指针,也不是普通的数值 在不同的系统中,NULL并⾮总是和0等同,NULL仅仅代表空值,也就是指向⼀个不被...
在C 语言中,NULL 和 0 的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0 用于数值; #include<stdo.h> int main() { int *p=NULL; printf("%s",p); } /* 输出: 0x00000000 */ 由上面代码可以看出:NULL 在实际底层调用中就是 0 ; ...