指针常量,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可以是个地址)然后再取这个地址的值。
(其实你不用的,我删除了,我又得重写,不过还是谢谢你哦,关键是你要懂!:))来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
无其他回答

指针常量,NULL指针,指针的指针,&p,*p,&(*p),*(&p),这些怎么区分,怎么...
指针常量是指针所指向的位置不能改变,即指针本身是一个常量。但是指针常量可以通过间接引用修改内存中的数据。定义指针常量的语句格式为:指针类型 *const 指针常量名=&变量名 比如说定义了一个整形变量 int a = 1; 同时定义了一个指针p指向这个变量a: int *p = &a;但我用完这个变量和指针的...

常量指针和指针常量有什么区别
1、本质 指针常量:本质上一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。常量指针:本质上是一个指针,常量表示指针指向的内容,说明该指针指向一个“常量”。2、地址 指针常量:在指针常量中,指针自身的值是一个常量,不可改变,始终指向同一个地址。在定义的同时必须初始化。常...

什么是常量指针,指针常量?
1.常量指针 指的是指针的值是不能被改变的,就是指针的值是常量,假设 int *const p;关键点来了: const 修饰的是p,p是一个指针,我们知道指针也是一个变量,内存也会分配空间给他,他里面存的是地址,这样我们根据const关键字的属性就知道了: 指针变量p里面的值是不能改变的,指针变量里面是...

C语言中,p,&p,*p有什么关系?
我们知道,p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数。而*p表示此指针指向的内存地址中存放的内容,一般是一个和指针类型一致的变量或者常量。而我们知道,&是取地址运算符,&p就是取指针p的地址。等会,怎么又来了个地址,它到底和p有什么区...

什么是常量指针,指针常量
const 在 *前面,是常量指针,const在*后面,是指针常量。③这二者的区别就是:const int *p 指向的是 const int a=2;的&a;p可以变化但是*p不可以变化。而int * const p=&a; 意思是描述的是p,p不可变,就如const int a=2; a的值就不能再改变了。那么p不可以变,但是*p可以变。还有一...

谁能说清指针常量和常量指针的区别
一) 常量指针。常量是形容词,指针是名词,以指针为中心的一个偏正结构短语。这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。在C\/C++中,常量指针是这样声明的:1)const int *p;2)int const *p;常量指针的...

c语言的指针部分 *p与p区别
c语言的指针部分 *p与p区别如下:1、作用不同 p表示此指针指向的内存地址中存放的内容。p是一个指针变量的名字,表示此指针变量指向的内存地址。2、输出内容的格式不同 p常用在一个和指针类型一致的变量或者常量。p输出一个指针的地址,通常是输出一个16进制的数。3、效果不同 p是让编译器从指定的...

C\/C++杂谈(1)指针常量、常量指针
在代码中,区分它们的简单方法是检查const关键字的位置。如果const紧跟在*(指针)后面,那么是常量指针;反之,如果const在指针变量名前面,那么是指针常量。例如:指针常量:const int* p 常量指针:int* const p总结来说,指针常量限制的是指针本身,而常量指针限制的是指针所指向的值。理解它们的区别...

常量指针与指针常量的区别
首先,常量指针是指向常量的指针,其修饰的是指针所指向的数据,而不是指针本身。这意味着通过该指针,我们不能修改所指向的数据的值,但可以改变指针的指向。例如,const int *p,这里的p是一个指向const int的指针,我们不能通过p来修改它所指向的int值,但可以修改p使其指向另一个int常量。其次,...

C语言 *p 和p的区别?
p一般是一个和指针类型一致的变量或者常量。p输出的是一个16进制数, 输出一个指针的地址。3、功能不同 p是让程序去那个地址取出数据。p存放的是地址。例子:1、int a[5]={1,2,3,4,5};int *p=a;\/\/这是在定义指针变量p的同时就直接给它初始化,即把数组a的首地址赋给它。2、int a[5]...

相似回答
大家正在搜