定义int *p;p=NULL和p=0还有p=‘\0’的意思一样么?那有没有*p=NULL和*p=0还有*p=‘\0’这些写法?
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/16 01:06:01
![定义int *p;p=NULL和p=0还有p=‘\0’的意思一样么?那有没有*p=NULL和*p=0还有*p=‘\0’这些写法?](/uploads/image/z/12642880-40-0.jpg?t=%E5%AE%9A%E4%B9%89int+%2Ap%EF%BC%9Bp%3DNULL%E5%92%8Cp%3D0%E8%BF%98%E6%9C%89p%3D%E2%80%98%5C0%E2%80%99%E7%9A%84%E6%84%8F%E6%80%9D%E4%B8%80%E6%A0%B7%E4%B9%88%3F%E9%82%A3%E6%9C%89%E6%B2%A1%E6%9C%89%2Ap%3DNULL%E5%92%8C%2Ap%3D0%E8%BF%98%E6%9C%89%2Ap%3D%E2%80%98%5C0%E2%80%99%E8%BF%99%E4%BA%9B%E5%86%99%E6%B3%95%3F)
定义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';
}