C语言程序中的null和0的区别是什么

2021-01-01 19:27:56 字数 5224 阅读 5609

1楼:召走刀文

null一般表示空指针,也就是这个指针没有指向任何地址。你也可以简单的理解为指针变量初始化时赋值

'\0'是字符串的结束符。例如字符串char *p= "abc";实际上,一共有4个字符,分别是'a' 'b' 'c' '\0',所以当用数组来保存这个字符串时,就必须至少要有4个元素的数组。

对于gets函数,当gets函数出现异常时返回null,正常处理是返回字符串的指针,这是函数自己定义的。当gets函数异常时,跳出循环

library[count].title[0] != '\0'是判断字符串是否是空字符串,""就是空字符串,但是它里面是包含一个'\0'字符的。

所以,当不输入字符(书名)时,跳出循环。

下面这段c语言程序中,null 和'\0'的区别是什么?

2楼:召走刀文

null一般表示空指针,也就是这个指针没有指向任何地址。你也可以简单的理解为指针变量初始化时赋值

'\0'是字符串的结束符。例如字符串char *p= "abc";实际上,一共有4个字符,分别是'a' 'b' 'c' '\0',所以当用数组来保存这个字符串时,就必须至少要有4个元素的数组。

对于gets函数,当gets函数出现异常时返回null,正常处理是返回字符串的指针,这是函数自己定义的。当gets函数异常时,跳出循环

library[count].title[0] != '\0'是判断字符串是否是空字符串,""就是空字符串,但是它里面是包含一个'\0'字符的。

所以,当不输入字符(书名)时,跳出循环。

3楼:

c中没有对null预定义,所以null和'\0'区别就大了:null只是个合法的用户标识符,而'\0'是预定义为0的字符常量。

如果是null和'\0',那它们没有区别,都被预定义为值为0的常量,所以混用它们不会产生任何问题,甚至把用它们的地方都改成0也无妨。一般情况下,null用于使指针无效或判断指针是否无效,'\0'则用于字符串结束或判断字符串是否结束。这样规范书写,**的可读性就大为提高,没有发现有什么别的意义。

4楼:匿名用户

gets(library[count].title) != null这里是用来判断指针是否为空

library[count].title[0] != '\0'这里判断里面的数据是否为字符串结束标记

请问大神们,c语言中的null和0有啥区别啊?

5楼:what心

null是空,而0是一个整形数,不为空,两者还是有区别的

比如你定义一个数组,没有赋值里面就都是null,而不是0

望采纳,感谢

6楼:匿名用户

从值来说的话,都是0值。这俩最根本的区别是类

请问 c语言中“\0”与null 的区别

7楼:百度用户

\0是字符串后面自动添加的字符,占一个位置。

而null作为c语言中的保留字,使用来对循环等进行判断的。例如if ***=null

end明白了么,如果有疑问你可以给我发邮件,kostevych@yahoo.***.** 我尽量解答。

8楼:超超

对于声明以后未赋值的数值类型变量则它们的默认值为0

null关键字被用来作为variant子类型,它说明变量不包含有效数据。null是将null值显式地赋值给一变量的结果,也可能是包含null的表达式之间的任何运算的结果谢谢

9楼:百度用户

\0 \为转义符,后跟数字为八进制,\0就是表示数字0null在头文件的定义也是0,没区别。

它们指的都是ascii字符集中的第一个字符,标志“空”的一个状态字。

while(*pf)

while(*pf!=0)

效果也一样,都是判断指针为空(假)做为终止循环的条件。

指针这种用法一般是在调用函数中,会传递一个指针,然后返回已指向目标的指针,用户通过该指针就可以操纵所需功能了。如果调函数失败,返回的就是空指针。

这可指导用户,对失败情况做另外的处理。

10楼:橡皮

一般null实际是 (void *)0,经常用于指针初始化,代表不指向任何有效存储区。

'\0'是一个字符,代表空的字符,如此而已,呵呵。

补充点,注意区分null和nul

11楼:

\0表示字符串的结束符

null表示空常用于数据结构的数....->..=null

c语言中:字符''和字符 '\0'和null是等价的么

12楼:匿名用户

单引号里两个里面空的,在c语言中不是合法表示,要表示空字符就是用'\0'。

两个双引号中才可以是空的,表示空字符串。

null如果表示字符时,就是上面的空字符,也就是对应ascii码0。

null还可以表示空指针,也就是没有进行地址初始化的指针。但实际在计算机表示中指向地址0的指针就表示没有初始化,所以null也是指向地址0的指针。

13楼:匿名用户

char c[1];

c[0] = '\0';与 char d[1] = "";应该是一个意思

但是跟null是俩概念,null等于是没有指向内存的指针

c语言的字符串,\0'null,有什么区别

14楼:匿名用户

\0是字符串结束符,暂用一个字节,放在内存里其实就是0x00。

null是空地址,不占用任何字节,是用来给指针赋值的。其实就是0地址,这个地址在c语言里面是不允许访问的,访问会出异常。

比如int * p = null,int *q,q的值是一个随机值,p的值就是0x0。

c语言 空字符 null 和字符 '0' 的区别

15楼:匿名用户

ascii码听过吧,字bai符和字符串的数字就du是ascii,它们和我们的zhi十dao进制数是有区别的如专:字符'0', '1', '2'……换属

成十进制数是48, 49, 50,这就是' ' 表示的字符和没有的区别哦而字符串就是由字符组成,但有一个区别:字符串“0123”,它可分割为'0' '1' '2' '3' '\0' <-----多了一个尾巴'\0'------对应的十进制值0(和'0'要区别开而null的值就是'\0',即十进制的0,而字符'0'的十进制值是48(要分别开来哦) --更深一层的就是null和'\0'(即0)只是值相同,意义上是不同的哦(这不懂也没事,有汇编知识可看下)c在编译的时候,数据段和堆栈段会被生成一个dgroup的段组(即在内存中是相连的,并且是共用同一个段地址),而这dgroup中有一段就是null(0,表示是dgroup的开始那一小段,后面才是数据段这些)段了,它由编译器生成的,记录了编译器的相息。所以有相关的保护,不允许对它的内容修改<----这就是为何null值的指针是安全的,对null值的指针赋值会报错

16楼:匿名用户

null是一来个宏。

#ifndef null

#ifdef __cplusplus//这个自是指示是用baic++来编译程序du

#define null 0 //用null这个字符代表zhi0

#else

#define null ((void *)0)#endif

#endif

一般null==0

null!dao=‘0’

当然'0'==48

17楼:匿名用户

null与0的区别:抄

还是让我们看一下windef.h中null的定义:

#ifndef null

#ifdef __cplusplus//这个是指示是用c++来编译程序

#define null 0 //用null这个字符代表0

#else

#define null ((void *)0)#endif

#endif

所以说:它们没有区别,只不过在c里面会做一个强制类型转换。

18楼:匿名用户

null的ascii码值是0'0'的ascii码值是48(也许没能理解楼主的意思)

19楼:匿名用户

null的内码是0'0'的内码是48

c语言中的null总是被定义为0吗?null总是等于0吗?

20楼:謇秀荣闽秋

null总是等于来0吗?

对这个问源题的回答与“等于”所指的意思有关。如果你是指“与。比较的结果为相等”,例如:

if(/*

...*/)else/*

...*/if(p==0)那么null确实总是等于0,这也就是空指针定义的本质所在。

如果你是指“其存储方式和整型值。相同”,那么答案是“不”。null并不必须被存为一个整型值0,尽管这是null最常见的存储方式。在有些计算机中,null会被存成另外一些形式。

如果你想知道null是否被存为一个整型值0,你可以(并且只能)通过调试程序来查看空指针的值,或者通过程序直接将空指针的值打印出来(如果你将一个空指针强制转换成整类型,那么你所看到的很可能就是一个非零值)。

c语言中null有什么作用?具体用法是什么?

21楼:匿名用户

null 属性指定数组或指针值是否可以为 null。

pre 和 post 特性上允许此属性,此属性只能应用于数组或指针数据类型。

必须通过使用下列值之一来设置 null 属性:

sa_yes - 此值为 null。

sa_no - 此值不为 null。

sa_maybe - 此值可以为 null。

注意 sa_ 前缀对于 c++ 是可选的。

示例下面的**演示如何使用 null 属性:

以带有颜色区分的格式查看复制到剪贴板打印// c#include

void f([sa_pre(null=sa_no)] char** pc);

// c++

#include

using namespace vc_attributes;

void f([pre(null=no)] char** pc);

在c语言程序中null指针常量的作用是什么

1楼 匿名用户 用来表示空指针。 在c中,变量可以是任何值 但一个非法的指针值,会导致访问出错,程序崩溃,或者出现不可预知后果。 所以 需要一个值,标记这个指针是非法的 null的值为0,在计算机中,是不可能访问0地址的。 所以用null表示这个指针还没有被赋值。 比如if s null s 这样赋...

C语言中这段程序是什么意思,C语言程序中break是什么意思?

1楼 金色潜鸟 这段程序是构建一张黑白棋盘位图。即,横向每8格为一段,黑白交替,竖向也是 每8格为版一段,黑白交替。 i 0x8 即取权 2进制i值的 右数第三位,j 0x8, 取 2进制j值的 右数第三位 然后2者做 异或 运算, 0 0 0 1 0 1 0 1 1 1 1 0 。 数值 0 为黑...

C语言中与的区别,c语言中“&”与“*”有什么区别?

1楼 匿名用户 是取地址 叫解引用,意思是取地址的内容 举例 int a 3 int b a 这里 表示取a的地址 b就是去b的地址的内容就是3 2楼 诡其辞 s形式表示取变量s的地址 a b形式表示a与b之间进行位与运算。 s形式表示指针变量指向的位置 a b形式 呵呵!不消说了。 3楼 匿名用户...