C语言中int *p=NULL意思是:C语言中p里面是随机值,在int *p=NULL,这个p是有值的,为NULL;int *p=NULL指向一个空指针,等于 int *p=0; NULL等于0;可以随时让这个p指向其他地址。定义指针,将它初始化为NULL,这样做编程更规范。
int *p=NULL表示什么意思?有四个选项:1.p指向的单元的值是0;2.p指向的单元的值为NULL;3.p不指向任何有效单元;4.p指向的变量的值为0.
1. int *p = NULL; 代表定义一个指向整型变量的指针p,然后p的值设为NULL,也就是设为0;用另一种方式说,就是对一个刚定义的指向整型变量的指针,赋初始值,让其指向0地址。 2. *p = NULL; 代表对一个由指针p指向的变量(什么类型,不知道),赋值为0,是将那个变量赋值为0。 我们可以先看下面的代码: 1 i...
第一种是定义一个int型指针,并给它初始化为NULL,也就是个空指针,没有指向任何地方,就是个空的。第二种是定义一个int型指针,然后给指针赋值为NULL,指针指向NULL地址。第三种是给指针的值赋值为NULL,也就是给指针指向的内容赋值为0(也就是为空)。
第一种是定义一个int型指针,并给它初始化为NULL,也就是个空指针,没有指向任何地方,就是个空的。第二种是定义一个int型指针,然后给指针赋值为NULL,指针指向NULL地址。第三种是给指针的值赋值为NULL,也就是给指针指向的内容赋值为0(也就是为空)。
定义int* 即整型指针变量。变量名为p。初始化值为NULL,即空指针。
实际上就是给指针p赋值为0,就是说 int *p=NULL;就是int *p=0;。一个等于0的指针是表示这个指针不能用的状态,即不可能用*取出0单元的值来。所以给指针赋0(即写p=0的样子)时0前是不必强制的,而如果是其他常数则必须强制为与指针相同的类型,这说明这里给0赋予了特殊的意义!
不等,int *p,其中p表示的是指向int类型的指针,p[0]表示的是指针p所指向的内存单元的值,打个比喻,int *p中的p有点类似于a[0]中0的角色,而不是a[0]的角色
1. 写0也可以,但是写NULL看起来更清楚 2. stdlib.h中已经定义了NULL,没必要再写 3. 有必要。如果不给p赋值NULL,那么p的值是undefined, 不一定是多少,有可能指向已经使用的内存。这时候如果给*p赋值,可能会造成破坏。如果p=NULL,就不可能给*p赋值,减少误操作的机会。