指针定义NULL后无法赋值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针定义NULL后无法赋值?相关的知识,希望对你有一定的参考价值。
int a = 0xa5;
int *p = NULL;
为什么
*P = a;是错的,
p = &a;又是对的。
2、p=&a 是对的,因为int a = 0xa5 这一句代码创建了一个int型变量a,给变量a分配了内存,则变量a存储在某块内存上的,这块内存是有地址的。那么p=&a是将a的地址赋值给指针p,则指针p指向变量a的地址空间。所以这句代码是对的。 参考技术A 首先:int *p = NULL;这句话的的意思是未给变量p开辟任何内存空间,那么*p这个语法就会报错,为什么?p还没有开辟内存空间,*p取了个寂寞?但是p = xxxx为什么可以,是这句语法是给p开辟空间并且赋值。
但是你这样写就可以:
int a = 10; int *p = new int; *p = a;这样写是正确的,int *p = NULL和 int *p=new int有本质的区别。或者int *p = (int *)malloc(sizeof(int))希望你能看懂 参考技术B NULL是个地址,这个地址的位置禁止写入数据,所以*P=a是错的
p=&a是把a的地址给P,和*P=a毫无关系啊,你要弄明白它的语义
指针的null是啥意思
如果int *array=NULL;
即 int *array;
array=NULL;
意思是定义一个整型指针变量array,并把它初始化成NULL(空)
那么array指针指向的类型是什么
是int ,还是什么
你在让它指向一个有效地址就行了;
int a;
array=&a;
*array=5; 参考技术C 指向空(NULL).但它还可以指向别的int值.
比如int b=0;
p=&b;
以上是关于指针定义NULL后无法赋值?的主要内容,如果未能解决你的问题,请参考以下文章