怎样在C语言中输入NULLC语言中NULL有什么作用?具体用法是什么?

2021-03-09 21:32:14 字数 6367 阅读 3729

1楼:匿名用户

函数的声明:

char *gets(

char *buffer

);它有一个参数buffer,指向char类型的指针。指向输入字符串缓冲区地址。如果函数调

内用成功则它的返回容值为buffer的地址,如果调用失败则返回null。

所以while(gets(buff)!=null)这行**就是只要gets函数调用失败就停止循环,但一般这个函数调用失败的机率是很小的,所以就出现了死循环。要明白这一点必需知道,gets函数的返回值为输入字符串的地址,而null不等于空字符串,也不等于空字符串的地址。

把那个程序改为如下的形式就对了。

#include "stdio.h"

main()

/*注:strcmp为字符串比较的函数,当两字符串相同时返回0*/

2楼:大狂哥灬

null就是空的意思,常用来表示控指针例如 *p=null

3楼:匿名用户

null可台直接使用

void* p = null;

4楼:

null就是0

#define null 0

直接输入0就行

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

5楼:小恼

给x变量的空间表示为空,表示没有存储数据。如果x = 0;表示x的变量中存储了一个0元素的值。

6楼:百度用户

null 其实就是 #define null 0 也就是说它就是0 不过是写**的时候为指针什么的赋值或判断指针是否为空时看起来直观一些。

c语言中的null

7楼:乐跑小子

在头文件 中 定义的一个常量 null=0;

用于指将指针 悬空(不指向任何位置)楼上的指向0内存不对的.

int *p=null;

null是个好东西,给一出生的指针一个安分的家

null不是被定义为0,就是被定义为(void *)0,这两种值几乎是相同的。当程序中需要一个指针时(尽管编译程序并不是总能指示什么时候需要一个指针),一个纯粹的零或者一个void指针都能自动被转换成所需的任何类型的指针。

null总是等于0吗?

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

if(/* ... */)

else

/* ... */

if(p==0)

那么null确实总是等于0,这也就是空指针定义的本质所在。

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

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

8楼:匿名用户

c语言null定义,定义如下:

#undef null

#if defined(__cplusplus)#define null 0

#else

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

所以我觉得,如果一个指针被赋予null,应该就相当于这个指针执行了0x0000这个逻辑地址,但是c语言中0x0000这个逻辑地址用户是不能使用的(有些人说是因为0x0000没有映射到物理地址,也有人说是因为0x0000映射到的地址是操作系统用于判断野指针的,我也不太懂,总之就是用户不能使用啦),所以当你试图取一个指向了null的指针的内容时,就会提示段错误,听着有点绕,看程序:

int *node=null;

int a=0;

a=*node;

printf("%d\n",a);

由于node执行的是null,也就是逻辑地址0x0000,而这个地址用于是不能访问的,所以编译器提示段错误。

9楼:d小太阳

在c语言中,null和0的值都是一样的,但是为了目的和用途及容易识别的原因,null用于指针和对象,0用于数值。对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值。

拓展资料:

关于null的使用

编程工作中有一类比较容易犯的错误--指针地址未进行正确的更新赋值就加以使用,这往往会造成很严重的后果(对内存区进行错误的涂抹)。所以一个良好的习惯是,当一个指针的工作稍事休息,先把它赋值为null,待到再度使用时,重新对其赋值以及进行指针类型转化。

前面说到"null指针无法再进行任何数据访问",其实是视编译器功能而定的。0位置指向的是程序起始,对于不同的编译器,null指针的操作结果是不同的:有些是不准读写,有些是只读,甚至读写都允许。

编译器是人定的。

10楼:高金山

#define null ((void*)0)

其值是0,但意义是空指针

'\0'的值也是0,但意义是字符串结束符

11楼:阳光没有眼睛

可以的null别定义为

#define null ((void *)0)

'\0'是字符,ascii是0

12楼:匿名用户

null的定义是:

#define null (*(void*)0)简而言之就是一个打包过的0.

while后面应该填写

'\0' != *p

因为按照习惯,*p是一个字符变量.

但是你填

null != *p

或者就是

*p都可以.

13楼:匿名用户

null, 大写,有这样一个定义: #define null 0 你能看到? 看vc里边应该能看到如果没有小写null,你也可以这样:

#define null 0 这样就可以,呵呵。

14楼:匿名用户

指针可以赋值null,但数值只能赋值为0.*p是表示指针p指向内存块中的值。所以不能赋值给null。null不相当于0.

'\0'就更不是了。它是表示什么也没有。例如指针被赋值了null表示这个指针没有指向任何地址。在c++中指针可以赋值为0,表示为null。而0表示个数值在c中。

这个**while() 这里好像有错误。

15楼:匿名用户

反正null就是0,一般用来形容指针是空的.

至于你说的null == '\0' , 只是因为'\0'也是数值0而已

16楼:匿名用户

tv在 6000008i。,,个

+凉皮。了

17楼:唐甄甄甄

应该是p!=null

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

18楼:

null

其实就是

#define null 0

也就是说它就是0

不过是写**的时候为指针什么的赋值或判断指针是否为空时看起来直观一些

19楼:匿名用户

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);

20楼:匿名用户

在stdio.h(或iostream)中定义:#define null 0

作用就是初始化,int a;编译器会赋一个不可预知的值,int a = null; a就是0。同理是指针,而且尤其是指针。一个空指针(int* p = null;)比一个野指针(int *p;)要安全的多。

在很多书籍中都提倡使用前后的指针都要赋null。

21楼:匿名用户

null就是空的意思,一般为0

22楼:匿名用户

为空,或缺省值,不用赋值

c语言的 null是什么

23楼:匿名用户

在单链表中使用时会用到

最后一个元素的后接指针为空(null)

具体到程序的话

不好说```

null一般只是在操作指针的时候才会用到的!

24楼:沒囿叻結局

null,本意是"空的,元素只有零的"意思。null和0的值都是一样的,但是为了目的和用途及容易识别的原因,null用于指针和对象,0用于数值。

例:#include

int main()

输出,单步调试可以看出执行int *p=null,p的值为0x00000000,可以看出,null在实际底层调用中就是0。

c语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的d.m.

ritchie于1972年推出,1978年后,c语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到c语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

25楼:匿名用户

null 就是错误的意思

找不到文件就是它

26楼:**的可乐

null在实际的底层**中就是0。

比如int *p; // 这时候p的值由系统分配p=null;

则p实际在bebug窗口看到的结果为0x00000000。

--------------------------------关于你的**:

(1) if(fp=("i:\\woailuo.c","r"==null) 写错,没写fopen,还少个括号

(2) 注释格式应该是/* */

fopen函数的作用是按照一定格式打开一个文件,如果打开成功,则返回该文件的指针,如果失败,则返回空指针(null,或者可以直接认为是0)。

所以,判断文件打开失败与否,应该这样写:

if( ( fp=fopen("somefile.dat","r") ) != null )

/* 打开成功了,随便干点什么 */

else

/* 打开失败,显示出错信息 */

c语言中是null什么意思?

27楼:农连枝弥雀

在头文件

中定义的一个常量

null=0;

用于指将指针

悬空(不指向任何位置)楼上的指向0内存不对的.

int*p=null;

null是个好东西,给一出生的指针一个安分的家

null不是被定义为0,就是被定义为(void

*)0,这两种值几乎是相同的。当程序中需要一个指针时(尽管编译程序并不是总能指示什么时候需要一个指针),一个纯粹的零或者一个void指针都能自动被转换成所需的任何类型的指针。

null总是等于0吗?

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

if(/*

...*/)

else

/*...

*/if(p==0)

那么null确实总是等于0,这也就是空指针定义的本质所在。

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

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

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

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

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

1楼 召走刀文 null一般表示空指针,也就是这个指针没有指向任何地址。你也可以简单的理解为指针变量初始化时赋值 0 是字符串的结束符。例如字符串char p abc 实际上,一共有4个字符,分别是 a b c 0 ,所以当用数组来保存这个字符串时,就必须至少要有4个元素的数组。 对于gets函数,...

c语言中的define是什么意思,有什么作用,怎样用

1楼 匿名用户 宏定义,用于定义全局变量 如 define num 1 那么在你的程序里mun就等于1 2楼 匿名用户 c语言中, define 是一种编译预处理指令,称为宏定义指令。它后面至少空一个格,再写符号常量的名称 它属于标识符 ,再空至少一个格,写符号常量的值。进行了宏定义以后,其默认作用...