C语言NULL和NULL
A. C/C++中,NULL和null的区别是什么
c语言和C++对大小写是敏感的,也就知是说null和NULL是区别对待的。NULL(如已宏定义)代表空地址,null(如没宏定义)只是一个符号。
1、其实null和NULL都是字符串,具体看它们宏定义被定义成为什么值。
2、在VS中NULL被定义为0,因为习惯上把宏定义的所有字符都大写,当把NULL它赋值给指针时意思为空,当然你也可以把null定义为0了,都一样。你把0直接赋值给指针也行,只要指针指向0就为空。
3、对于空(null)指针的概念,在 C 标准中明确地定义:值为 0 的整型常量表达式,或强制(转换)为“void*”类型的此类表达式,称为空指针常量。
4、当将一个空指针常量赋予一个指针或与指针作比较时,将把该常量转换为指向该类型的指针,这样的指针称为空指针。空指针在与指向任何对象或函数的指针作比较时保证不会相等。
(1)C语言NULL和NULL扩展阅读
在C中,任何类型的两个空指针都保证比较相等。预处理器宏NULL被定义为实现定义的空指针常量,它在C99中可以可移植地表示为0隐式或显式转换为类型的整数值void*(指向void的指针)。
C标准没有说空指针与指向内存地址0 的指针相同,尽管在实践中可能就是这种情况。解引用空指针是C中的未定义行为,并且允许符合要求的实现假定任何被解除引用的指针不为空。
参考资料
网络—Null
网络—C/C++
B. C语言的 NULL是什么
Null,本意是"空的,元素只有零的"意思。NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值。
例:
#include<stdo.h>
int main()
{
int *p=NULL;
printf("%s",p);
}
输出<null> ,单步调试可以看出执行int *p=NULL,p的值为0x00000000,可以看出,NULL在实际底层调用中就是0。
C. C语言中是NULL什么意思
c语言null的意思和0的值是一样的,用于指针和对象。
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%到20%。因此,C语言可以编写系统软件。
(3)C语言NULL和NULL扩展阅读
常量与变量
常量其值不可改变,符号常量名通常用大写。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,中括号内的索引值是从0算起的。
D. c语言null什么意思
NULL 用于表示指针是空指针。实际使用中实际上 NULL = 0
不过一般不建议用NULL= 0这个特性。
E. c语言NULL是什么意思
null,本意是"空的;元素只有零的"意思。计算机中通常表示空值,无结果,或是空集合。
null指针是一个无类型指针,并且值为0。一个指针,拥有2个属性--地址值和指针类型。两者的作用是:1,地址值标识变量的首地址(32位系统下指针的地址值占4字节);2,指针类型告诉编译器,应该怎样进行接下来的数据访问(int型数组和float型数组是不同的;数组访问与结构体访问也是不同的;等等)。
F. null与NULL
其实null和NULL都是字符串,看你把它们,宏定义为什么值,在VS中NULL被定义为0,因为习惯上把宏定义的所有字符都大写,当把NULL它赋值给指针时意思为空,当然你也可以把null定义为0了,都一样的啦!它们都没定义时都只能叫符号了,定义后就有另外的意思了,你把0直接赋值给给指针也行,只要指针指向0就为空啦!其实NULL在有些编译器中是赋为0了,这时你不能再去#define定义它了,否则就重定义了!
G. null在c语言中什么意思
C中没有对null预定义,所以null和'\0'区别就大了:null只是个合法的用户标识符,而'\0'是预定义为0的字符常量。如果是NULL和'\0',那它们没有区别,都被预定义为值为0的常量,所以混用它们不会产生任何问题,甚至把用它们的地方都改成0也无妨。一般情况下,NULL用于使指针无效或判断指针是否无效,'\0'则用于字符串结束或判断字符串是否结束。这样规范书写,代码的可读性就大为提高,没有发现有什么别的意义。
H. C语言中NULL有什么作用具体用法是什么
Null 属性指定数组或指针值是否可以为 Null。
Pre 和 Post 特性上允许此属性,此属性只能应用于数组或指针数据类型。
必须通过使用下列值之一来设置 Null 属性:
SA_Yes - 此值为 null。
SA_No - 此值不为 null。
SA_Maybe - 此值可以为 null。
注意
SA_ 前缀对于 C++ 是可选的。
示例
下面的代码演示如何使用 Null 属性:
以带有颜色区分的格式查看复制到剪贴板打印// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Null=SA_No)] char** pc);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Null=No)] char** pc);
I. C语言中NULL是如何定义的
是一个无类型指针,并且值为0。一个指针,拥有2个属性,即地址值和指针类型。两者的作用是:
1、地址值标识变量的首地址,32位系统下指针的地址值占4字节。
2、指针类型告诉编译器,应该怎样进行接下来的数据访问。
Null在数据库中表示 不知道的数据,主要有3种意思:
1、知道数据存在,但不知道具体值。
2、不知道数据是否存在。
3、数据不存在。
J. C语言中NULL是什么意思
在C语言中,NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值。对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值。
拓展资料:
关于NULL的使用
编程工作中有一类比较容易犯的错误--指针地址未进行正确的更新赋值就加以使用,这往往会造成很严重的后果(对内存区进行错误的涂抹)。所以一个良好的习惯是,当一个指针的工作稍事休息,先把它赋值为NULL,待到再度使用时,重新对其赋值以及进行指针类型转化。
前面说到"NULL指针无法再进行任何数据访问",其实是视编译器功能而定的。0位置指向的是程序起始,对于不同的编译器,NULL指针的操作结果是不同的:有些是不准读写,有些是只读,甚至读写都允许。编译器是人定的。