如题所述
第1个回答 推荐于2016-10-28
NULL就是0
#define NULL 0
直接输入0就行本回答被提问者采纳
#define NULL 0
直接输入0就行本回答被提问者采纳
第2个回答 2015-04-19
NULL可台直接使用
void* p = NULL;
void* p = NULL;
第3个回答 2015-04-19
NULL就是空的意思,常用来表示控指针例如 *p=null
第4个回答 2015-04-19
函数的声明:
char *gets(
char *buffer
);
它有一个参数buffer,指向char类型的指针。指向输入字符串缓冲区地址。如果函数调用成功则它的返回值为buffer的地址,如果调用失败则返回NULL。
所以while(gets(buff)!=NULL)这行代码就是只要gets函数调用失败就停止循环,但一般这个函数调用失败的机率是很小的,所以就出现了死循环。要明白这一点必需知道,gets函数的返回值为输入字符串的地址,而NULL不等于空字符串,也不等于空字符串的地址。
把那个程序改为如下的形式就对了。
#include "stdio.h"
main()
{ char buff[256];
while(strcmp(gets(buff),"")!=0)
puts(buff);
}
/*注:strcmp为字符串比较的函数,当两字符串相同时返回0*/本回答被网友采纳
char *gets(
char *buffer
);
它有一个参数buffer,指向char类型的指针。指向输入字符串缓冲区地址。如果函数调用成功则它的返回值为buffer的地址,如果调用失败则返回NULL。
所以while(gets(buff)!=NULL)这行代码就是只要gets函数调用失败就停止循环,但一般这个函数调用失败的机率是很小的,所以就出现了死循环。要明白这一点必需知道,gets函数的返回值为输入字符串的地址,而NULL不等于空字符串,也不等于空字符串的地址。
把那个程序改为如下的形式就对了。
#include "stdio.h"
main()
{ char buff[256];
while(strcmp(gets(buff),"")!=0)
puts(buff);
}
/*注:strcmp为字符串比较的函数,当两字符串相同时返回0*/本回答被网友采纳