首页 > 产品 > 问答 > 指针常量,指针常量与常量指针

指针常量,指针常量与常量指针

来源:整理 时间:2023-09-04 19:52:25 编辑:智能门户 手机版

本文目录一览

1,指针常量与常量指针

这个就是int const *和int * const的区别。int const * pc;是定义一个指向常量的指针,这个常量的值是不能变的,但是pc指针本身仍然是个变量,所以我们可以对其进行赋值即:pc = &z,但不能这样*pc = 3,因为*pc代表的是pc所指向的内容,在这里是个常量,常量是不能被赋值的。而int * const cp;因为const紧跟着cp所以cp被定义成常量,这样指针cp的值就不能被改变了,如果y被定义成变量即:int y = 3;那么* cp的值即常量指针cp的值仍然可变,但cp指针本身是个常量。
指针常量是需要被赋值的,算法是从上往下执行,在执行完int * pp = &z;后,指针的赋值是可以改变原来的赋值的,所以*pc改变成&z的值。
常量指针表示指针的值是一个常量,比如int a = 0; int *const ptr= &a;也就是说指针指向的地址是不变的,但是他的内容可变。指针常量是指指针指向的是一个常量,也就是说指针指向地址的值是不变的。比如const int *ptr =0;

指针常量与常量指针

2,什么是常量指针指针常量

①注意一下:往往中文属于里形式如AB ,那么A是描述,B是本质。比如 数据库管理系统 数据库管理是描述 系统是本质 比如 函数指针 函数是描述 本质是指针,这个指针指向函数地址(那本质和描述的区别是?描述变了还是同一大类,本质变了就不是同一大类了)②言归正传: 常量指针,也就是本质是指针,什么样的指针呢?常量类型的指针,什么叫常量类型的指针呢?回忆一下函数指针,指向函数地址的指针。那么常量指针,就是指向常量类型地址的指针。比如const int * p;而指针常量,本质是常量。什么类型的常量?指针类型的常量,为了能够有个术语结构上的对比,你肯定知道整型常量,也知道是这么定义的:const int a;但指针常量,是这么定义的 : int * const a;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可以变。还有一种是 综合一起的,const int * const p=&a; 这种一旦确定值,*p和p都不能变化。

什么是常量指针指针常量

3,指针常量和常量指针的区别

int a = 10;int * b = a;//指针const int * c = a;//指向常量的指针int * const d = a;//常量指针const int * const * e = a;//常量指向常量的指针你想问什么b是可以修改自己,就是可以重新指向别人,也可以修改a的数据c是不能修改a的数据,不过可以重新指向别人d是不能重新指向别人不过可以修改a的数据e是既不能指向别人也不能修改a的数据
常量指针表示指针的值是一个常量,比如int a = 0; int *const ptr= &a;也就是说指针指向的地址是不变的,但是他的内容可变。指针常量是指指针指向的是一个常量,也就是说指针指向地址的值是不变的。比如const int *ptr =0;
指针常量:指针指向的内容是不允许修改。常量指针:指针指向的内容是允许修改,指针指向的地址是不允许修改.
常量指针就是指针只能指向常量的地址 常量是什么不用说了吧。。。int a=5;5的地址就是常量,a的是变量。p只能指向常量但是p可以改变,即可以指向不同常量。指针常量就是指针本身指向的地址不能变,即int *p=a; 这个p即&a不能变,但是a可以改变

指针常量和常量指针的区别

4,指针常量指针常量和常量指针怎么区分

指针常量的本质是一个常量,并且使用指针来修饰它,那么说明这个常量的值应该是一个指针,其格式应为:int*constp,而常量指针本质是指针,并且这个指针乃是一个指向常量的指针。其格式为:intconst*p或者constint*p。指针常量的值是指针,这个值因为是常量,所以不能被赋值。在C/C++中,指针常量这样声明:只要const位于指针声明操作符右侧,就表明声明的对象是一个常量,且它的内容是一个指针,也就是一个地址,并且在声明的时候一定要给它赋初始值。一旦赋值,以后这个常量再也不能指向别的地址。常量指针的使用要注意,指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改,也就是说常量指针可以被赋值为变量的地址,之所以叫做常量指针,是限制了通过这个指针修改变量的值。例如:inta=2014;constintb=2015;constint*c=//这是合法的,非法的是对c的使用;*c=2016;//非法,但可以这样修改c指向的对象的值:a=2016;constint*d=//b是常量,d可以指向b,d被赋值为b的地址是合法的。const左边放,我是指针变量指向常量;const右边放,我是指针常量指向变量;const两边放,我是指针常量指向常量;指针变量能改指向,指针常量不能转向!要是全都变成常量,锁死了,我不能转向,你也甭想变样!*和const谁在前先读谁;*象征着地址,const象征着内容;谁在前面谁就不允许改变。

5,指针常量NULL指针指针的指针pppp这些怎么

指针常量是指针所指向的位置不能改变,即指针本身是一个常量。但是指针常量可以通过间接引用修改内存中的数据。 定义指针常量的语句格式为: 指针类型 *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可以是个地址)然后再取这个地址的值。 (其实你不用的,我删除了,我又得重写,不过还是谢谢你哦,关键是你要懂!:))

6,常量指针和指针常量有什么区别

区别:1、本质指针常量:本质上一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。常量指针:本质上是一个指针,常量表示指针指向的内容,说明该指针指向一个“常量”。2、地址指针常量:在指针常量中,指针自身的值是一个常量,不可改变,始终指向同一个地址。在定义的同时必须初始化。常量指针:指针可以指向其他地址3、内容指针常量:指向的内容可以修改常量指针:在常量指针中,指针指向的内容是不可改变的,指针看起来好像指向了一个常量。扩展资料指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。在32 位程序里,所有类型的指针的值都是一个32 位整数,因为32 位程序里内存地址全都是32 位长。指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为si zeof(指针所指向的类型)的一片内存区。在32 位平台里,指针本身占据了4 个字节的长度。指针本身占据的内存这个概念在判断一个指针表达式(后面会解释)是否是左值时很有用。参考资料:百度百科 - 指针

7,什么是常量指针指针常量

①注意一下: 往往中文属于里形式如AB ,那么A是描述,B是本质。 比如 数据库管理系统 数据库管理是描述 系统是本质 比如 函数指针 函数是描述 本质是指针,这个指针指向函数地址 (那本质和描述的区别是?描述变了还是同一大类,本质变了就不是同一大类了) ②言归正传: 常量指针,也就是本质是指针,什么样的指针呢?常量类型的指针,什么叫常量类型的指针呢? 回忆一下函数指针,指向函数地址的指针。 那么常量指针,就是指向常量类型地址的指针。 比如const int * p; 而指针常量,本质是常量。 什么类型的常量?指针类型的常量,为了能够有个术语结构上的对比,你肯定知道整型常量,也知道是这么定义的:const int a; 但指针常量,是这么定义的 : int * const a; 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可以变。 还有一种是 综合一起的,const int * const p=&a; 这种一旦确定值,*p和p都不能变化。

8,什么是常量指针指针常量

首先,定义一个常量的关键字是const ,其实这里面有一个被大家都默认为正确的错误,那就是用const定义的常量,其本质还是一个变量,因为内存会分配地址给保存起来,如果用define定义的常量才是真正的常量,这个内存是不会分配空间的,那怎么区别呢,因此内行人都将用const定义的成为只读变量,只读的意思就是只能读取他的值,而不能重新给他赋值。记住了哦~这个问题说难也难,说简单也简单,看下边答案的时候要记住,指针是一个变量,他有自己的内存空间,保存的是他指向变量的地址,记住,指针的值是地址,这样理解。1.常量指针 指的是指针的值是不能被改变的,就是指针的值是常量,假设int *const p;关键点来了: const 修饰的是p,p是一个指针,我们知道指针也是一个变量,内存也会分配空间给他,他里面存的是地址,这样我们根据const关键字的属性就知道了: 指针变量p里面的值是不能改变的,指针变量里面是什么呢? 对,是地址。正是由于他是不能改变的,所以我们一定要在定义的时候初始化,比如 int i=20; int *const p= &i;以下操作: p =&i2 不行,因为p的值是不能改变,就是他不能指向别的地址。 *p =100; 正确,因为他改变的不是p的值,而是相当于改变他指向的变量的值。2.指针常量形式 int const *p ;注意,const 关键字,int的位置可以互换,不影响,注意*号与const的位置关键点: const 修饰的是 *p (这个是重点);我们知道p里面是一个地址,那么*p就是他所指向的地址里面的数据,是一个值,不是一个地址了。那是什么意思了,const的意思你还记得吗?就是定义一个只读的变量,就不不能改变他值的变量,那么这条语句的意思就是:*p的值是不能改变的:假设下面语句int i1 = 30; int i2 = 40; const int *pi = &i1; pi = &i2; /* 注意这里,pi可以在任意时候重新赋值一个新内存地址*/ i2 = 80; /* 想想看:这里能用*pi = 80 来代替吗?当然不能!*/ printf("%d\n", *pi); /* 输出是 80 */ 语义分析: 看出来了没有啊,pi 的值是可以被修改的。即它可以重新指向另一个地址的,但是,不能通过*pi 来修改 i2 的值(这句话是关键)。不能通过*p的方式来改变并不是说i1,i2不能改变,就是他指向的变量的值是可以改变的,但是不能通过*p = 40 的方式来改变。这个问题花了我好久才弄明白,楼主自己再琢磨琢磨,可以到机器上去实验已下,印象更深刻~祝你进步!
文章TAG:指针常量指针常量与常量指针

最近更新

  • 会变形机器人的汽车,汽车变形机器人中文版破解版会变形机器人的汽车,汽车变形机器人中文版破解版

    电影变形孔鲤国王机器人变成了什么牌子的车?一个小男孩有很多漫画可以-1机器人?原来这个变形机器人从魔方召唤出来的是Capo车神。变形金刚中的汽车名称原型变形金刚中每个角色对应的金刚.....

    问答 日期:2023-09-04

  • 74ls192,74ls192引脚图74ls192,74ls192引脚图

    74ls192引脚图2,74hc192和74ls192的区别3,关于计数器74LS192的问题4,如何用74LS192设计大于10的计数器5,74ls190与74ls192的区别6,74ls192的功能表及管脚功能急求1,74ls192引脚图http://www......

    问答 日期:2023-09-04

  • 手机如何不被人恢复数据,手机QQ如何恢复删除的动态手机如何不被人恢复数据,手机QQ如何恢复删除的动态

    卖老手机如何防范数据被恢复-2/怎么样恢复?如何预防手机-2/being恢复?如何预防数据being恢复?怎么才能让手机已删除数据无法恢复?怎么才能得到手机-2/不能恢复?旧的手机卖给别人了。如果完.....

    问答 日期:2023-09-04

  • 换手机 小米 数据转到 mates,oppo手机数据怎么转到小米手上换手机 小米 数据转到 mates,oppo手机数据怎么转到小米手上

    华为手机Exchange小米-3数据如何导入华为手机Exchange小米12345656。小米手机如何把数据转到新的手机手机更换的很快,需要不停的换新的手机,如何快速将旧的手机数据转到新的手机?华为改了.....

    问答 日期:2023-09-04

  • 共发射极放大电路,共发射极放大电路的简介共发射极放大电路,共发射极放大电路的简介

    共发射极放大电路的简介2,什么是共发射极放大电路3,共发射极放大电路的工作原理4,共发射极三极管基本放大电路特点5,共集电极共发射极共基极三种基本放大电路一般都用在哪些实际电6,什么是.....

    问答 日期:2023-09-04

  • 郭嘉诚,我叫郭嘉诚我女友叫郭聪我们是三中的娃子我在12班我想给郭嘉诚,我叫郭嘉诚我女友叫郭聪我们是三中的娃子我在12班我想给

    我叫郭嘉诚我女友叫郭聪我们是三中的娃子我在12班我想给2,名将三国怎么快速获得成就徽章没有的别说了我才15级3,我男朋友叫郭嘉诚帮我想个与这个名字有关的外号吧谢谢咯4,郭姓男孩中间带.....

    问答 日期:2023-09-04

  • 手机数据微信不能用怎么办手机数据微信不能用怎么办

    小米5-1微信不工作怎么办?1.小米-1微信进不去。发生了什么事?数据太多,导致软件无法正常运行,手机手机数据无法上微信,微信不可用数据怎么办?手机空间不足微信用不了怎么办?1.手机存储空间不.....

    问答 日期:2023-09-04

  • 晶体和非晶体,晶体和非晶体的定义晶体和非晶体,晶体和非晶体的定义

    晶体和非晶体的定义2,晶体和非晶体怎么区别呢3,晶体与非晶体的区别4,什么是晶体什么是非晶体5,晶体和非晶体的区别是什么最好有图来表示6,请问什么叫晶体和非晶体呢1,晶体和非晶体的定义晶体.....

    问答 日期:2023-09-04