C语言不对0和NULL做严格的区分主要是为了简化语言设计、提高代码简洁性和可读性。尽管在某些情况下这可能...
在C 语言中,NULL 和 0 的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0 用于数值; #include<stdo.h>intmain(){int*p=NULL;printf("%s",p); }/* 输出: 0x00000000 */ 由上面代码可以看出:NULL 在实际底层调用中就是 0 ; 在不同的系统中,NULL 并非总是和 0 等同,NULL ...
本质也是0,在C语言中,NULL是一个宏定义,通常被定义为一个空指针常量(通常是0或者(void *)0)。它通常用于表示一个空指针,即指向没有特定对象的指针。所以一般用于指针初始化。 null(或者NUL) 通常指的是空字符或者空指针,实质上的作用相当于\0 \0 表示空字符,是一种转义字符,在字符串中,用它来表示字符串...
C中的NULL实际上表示为: #define NULL ((void*)0) 在给int*和float*指针赋值时会隐式转换成相应的类型。 C++为强类型,不能隐式转换。所以用整数0表示空指针,NULL指代0。但是在遇到函数重载时可能出现问题。 void f1(anytype element,int * p) void f1(anytype element,int p) 当这样传入时:f1(anytype...
所以,如果不是为了便于对地址进行便捷的间接寻址,甚至都不需要设计出指针这种类型及相应的配套语法。而NULL的本意就是一个非法的指针,根本就不打算让你正常的寻址使用的,所以只要固定一个特异值做标识就行了——而这个特异值自然就是个整型(强转为void*,只是一个让它可以隐式转为任何类型指针的语法小技巧而已)。
二.NULL 和 0 区别 在C 语言中,NULL 和 0 的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0 用于数值; #include<stdo.h> int main() { int *p=NULL; printf("%s",p); } /* 输出: 0x00000000 */ 由上面代码可以看出:NULL 在实际底层调用中就是 0 ; ...
在C语言中,NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值 对于字符串的结尾,使用“/0”,它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值。在不同的系统中,NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个...
#define NULL 0 但并非总是如此,也有些系统不将 0 地址作为 NULL ,而是用其他的地址,所以说,千万别将NULL 和 0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。 三.猜你喜欢
在C语言中,NULL和0在数值上是等价的,但它们的用途和目的却各不相同。NULL主要用于指针和对象的初始化,表示一个空或未定义的值,而0则用于数值运算和表示。对于字符串的结束标志,通常使用“/0”,它同样表示数值上的0,但这一用法让人明确知道这是字符串的结束符,而不是指向某个地址的指针,也...
二.NULL 和 0 区别 在C 语言中,NULL 和 0 的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0 用于数值; #include<stdo.h> int main() { int *p=NULL; printf("%s",p); ...