指针常量,NULL指针,指针的指针,&p,*p,&(*p),*(&p),这些怎么区分,怎么理解,
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/25 17:13:37
指针常量,NULL指针,指针的指针,&p,*p,&(*p),*(&p),这些怎么区分,怎么理解,
指针常量是指针所指向的位置不能改变,即指针本身是一个常量.但是指针常量可以通过间接引用修改内存中的数据.
定义指针常量的语句格式为:
指针类型 *const 指针常量名=&变量名
比如说定义了一个整形变量 int a = 1; 同时定义了一个指针p指向这个变量a: int *p = &a;
但我用完这个变量和指针的时候我把指针所指向的内存空间释放掉:free(p);这个时候p所指向的内存空间里面的数据1被清空的,但是指针p里面仍然存有一个地址(原来指向a变量内存空间的地址),此时通常再要把指针p设置成空指针:P = NULL.
指向指针的指针变量定义的形式为:
类型名 ** 指针变量名;
"**指针变量名"等价于"*(*指针变量名)",表示该指针变量的值存放的
是另个指针变量的地址,要经过两次间接存取后才能存取到变量的值.
&可以是一个引用,也可以是一个取地址符,比如int p ; 那么&p,就是取地址.也可以定义一个变量的别名,当引用使用.*p是定义一个指针,&(*p) *p是一个存放在p地址里的值,加上&这个就是取这个值的地址,*(&p)这个是先取地址p的值(p可以是个地址)然后再取这个地址的值.
(其实你不用的,我删除了,我又得重写,不过还是谢谢你哦,关键是你要懂!:))
定义指针常量的语句格式为:
指针类型 *const 指针常量名=&变量名
比如说定义了一个整形变量 int a = 1; 同时定义了一个指针p指向这个变量a: int *p = &a;
但我用完这个变量和指针的时候我把指针所指向的内存空间释放掉:free(p);这个时候p所指向的内存空间里面的数据1被清空的,但是指针p里面仍然存有一个地址(原来指向a变量内存空间的地址),此时通常再要把指针p设置成空指针:P = NULL.
指向指针的指针变量定义的形式为:
类型名 ** 指针变量名;
"**指针变量名"等价于"*(*指针变量名)",表示该指针变量的值存放的
是另个指针变量的地址,要经过两次间接存取后才能存取到变量的值.
&可以是一个引用,也可以是一个取地址符,比如int p ; 那么&p,就是取地址.也可以定义一个变量的别名,当引用使用.*p是定义一个指针,&(*p) *p是一个存放在p地址里的值,加上&这个就是取这个值的地址,*(&p)这个是先取地址p的值(p可以是个地址)然后再取这个地址的值.
(其实你不用的,我删除了,我又得重写,不过还是谢谢你哦,关键是你要懂!:))
再给指针变量(*p)赋空值(NULL)时,*p=NULL与p=NULL哪个正确?原因?
数据结构里!p || p的意思是p空吧.可是p不是头指针吗,头指针指向头结点怎么空了?原文P=L.
二级C语言:*(p++)解释,其中p是指针.
C语言指针**p是什么意思
已知P是指针变量,则不能初始化指针的值是 A NULL B 1 C 地址 D 0
指针p++和*p++ 有何区别
p是指针,p+i表示什么
p->next=NULL是将指针P指向的next置空还是将P的下一个指针指向空
“指向常量的指针”“常指针”“指向常量的常指针”该如何区分理解呢?
14.若变量已正确定义,(A)不能使指针p成为空指针.A、p=EOFB、p=0C、p=’’ D、p=NULL 理由哈
c语言中,定义一个指针 int*p.假定刚开始时候p所指向的地址相同.则指针p++和*(p++)的意义是否相同?
如果p是个指针变量,p[i]永远等价于*(p+i) 这个怎么理解,什么意思?要详细