常量指针与指针常量的区别

 我来答
fuzongtang
推荐于2017-09-12 · TA获得超过723个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:333万
展开全部
常量指针是指--指向常量的指针,顾名思义,就是指针指向的是常量,即,它不能指向变量,它指向的内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而可以指向另一个常量。
指针常量是指--指针本身是常量。它指向的地址是不可改变的,但地址里的内容可以通过指针改变。它指向的地址将伴其一生,直到生命周期结束。有一点需要注意的是,指针常量在定义时必须同时赋初值。

2.使用方法
写法上的区别:
常量指针:const 在*之前 指针常量:const在*之后。
使用举例:
(1) 常量指针使用:
如 int b, c;
int const *a;
a = &b;
a = &c;
都可以,唯独它指向的内容不能被修改。如:*a=20;这是违法的!错误!
(2) 指针常量使用
如 int a ,b;
int * const p = &a;
表示p是一个常量指针它指向变量a的内存。指针常量不能再用p指向其他变量,如 p = &b; 错误!可以修改指向内存的值,如:* p = 20; 指针常量声明的时候必须像上式那样赋初值。
指针常量也不能释放,用p指向NULL,即
p = NULL;
会在编译时报错
/opt/test/test.c:649: error: assignment of read-only variable `p'
还有一个记住他们不同形式的技巧!看const关键字,他后面的不可修改,如int * const a = &b; 后面是a,则说明a不能修改!
int const * a = &b;后面是*a则说明*a不可被修改!
长鱼修韦3r
2021-03-20
知道答主
回答量:9
采纳率:100%
帮助的人:5509
展开全部

常量指针   即:

指针指向的值为常量,  但指针本身为变量。

指针常量  即:

指针指向的值为变量,  但指针本身为常量。


char array[]="abcde";

const char *pArray = array;   //常量指针   合法  定义时赋值
----------------------------------------------------------------

const char *pArray;     //先定义, 

pArray = array; //后赋值。   合法   

*(pArray+1) = 'B' //非法, 指针指向的值为常量, 不可改变。


==================================================

char array[]="abcde";

char *const pArray = array; //指针常量, 即指针是常量, 必须在定义时赋值。

*(pArray+1) = 'B'; //合法 因为指针常量的值是变量,可以被修改。 

char *const pArray;   //这里就报错, 指针常量, 即指针是常量, 必须在定义时赋值。

pArray = array; //这里就报错, 指针常量, 即指针是常量, 必须在定义时赋值, 不能拆开赋值

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wubinabcde
2011-12-31 · TA获得超过259个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:144万
展开全部
常量指针表示指针的值是一个常量,比如int a = 0; int *const ptr= &a;也就是说指针指向的地址是不变的,但是他的内容可变。
指针常量是指指针指向的是一个常量,也就是说指针指向地址的值是不变的。
比如const int *ptr =0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
goods512
2011-12-31 · 超过14用户采纳过TA的回答
知道答主
回答量:209
采纳率:0%
帮助的人:141万
展开全部
以及常对象和常引用、常指针与指针常量定义上的区别,顺便解释一下!谢谢! 1 常量指针!如 int b, c; int * const a = &b; 表示a是一个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式