C语言中const修饰的指针

当用const进行修饰时,根据const位置的不同有三种不同效果。 判断的标准是:const修饰谁,谁的内容就是不可变的。

成都创新互联公司专注于翔安企业网站建设,成都响应式网站建设公司,商城开发。翔安网站建设公司,为翔安等地区提供建站服务。全流程按需定制设计,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

const修饰指针变量时候有三种情况:

1 const 修饰取值操作(修饰星号*)

int a = 10;
const int* p1 = &a;
const int *p2 = &a;
int const* p3 = &a;
int const *p4 = &a;

以上两种指针p1,p2,p3,p4的声明等价,当const在星号 * 前面,此时可以理解为const修饰的是星号和变量 (*p)(指针的取值操作),限定了指针p1-p4取值操作是只读的,不能修改,但是p1-p4指针变量是可以修改的。

*p1 = 100; //error 取值时是只读的,无法修改a的值
p1 = NULL; //不报错,指针的指向是可以更改的。

2 const 修饰指针变量

int* const p1 = &a;
int *const p2 = &a;

以上两种声明等价,当const在星号 * 和变量名之间,可以理解为const修饰的是指针变量p1,p2,即指针p1和p2的值(指向)不能修改,但是p1,p2的取值操作时候的值可以修改。 声明时必须初始化指针变量,一旦完成初始化就不能再指向其他地址。

*p1 = 100; //合法,此时a的值变为100
p1 = NULL; //error,指针变量的指向不能修改

3 两个const修饰

const int* const p1 = &a;

此时p1的指向不能修改,且p1的取值操作的值也不能修改

*p1 = 100; //error
p1 = NULL; //error
a = 100; //并不影响pi指向的a的值的修改

网页标题:C语言中const修饰的指针
分享路径:http://www.hantingmc.com/qtweb/news3/230553.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联