定义int *p;p=NULL和p=0还有p=‘\0’的意思一样么?那有没有*p=NULL和*p=0还有*p=‘\0’这些写法?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 05:49:50
定义int *p;p=NULL和p=0还有p=‘\0’的意思一样么?那有没有*p=NULL和*p=0还有*p=‘\0’这些写法?

定义int *p;p=NULL和p=0还有p=‘\0’的意思一样么?那有没有*p=NULL和*p=0还有*p=‘\0’这些写法?
定义int *p;p=NULL和p=0还有p=‘\0’的意思一样么?
那有没有*p=NULL和*p=0还有*p=‘\0’这些写法?

定义int *p;p=NULL和p=0还有p=‘\0’的意思一样么?那有没有*p=NULL和*p=0还有*p=‘\0’这些写法?
NULL ,0,'\0',这几种写法一样,值都是0
在很多编译器中#define NULL 0这样宏定义的都是给p的值赋值0,'\0'就是0,不过是以字符的形式,
因此他们是相同的
有*p=NULL,*p = 0,*p = '\0‘,这样的写法,不过他们的意思是说,给p这个指针指向的空间赋值为0
但是,不要先把p赋值为0,然后这样写,因为大多数编译器规定,内存为0的地方不能写操作,这是为了保护这个内存空间,因此只要不写在一块,都可以
这样写:
file1.c
#include
void main()
{
\x09int *p = &i;
\x09p = NULL;
\x09p = 0;
\x09p = '\0'
}
file2.c
#include
void main()
{
\x09int i = 23;
\x09int *p = &i;
\x09*p = NULL;
\x09*p = 0;
\x09*p = '\0';
}