const修饰词与指针变量

一、以const修饰词限制指针变量

const放的位置不同,将会产生对指针变量不同的效果。下面来介绍一下。

第一种:

const 数据类型 * 指针变量名称

数据类型 const * 指针变量名称

产生的效果是不能够修改指针所指向的内存空间内的数据,但是可以修改指针所指向的地址。

例如:

	int i=2;
	int const *p;
	p=&i;//可以
	*p=5;//不行


第二种:

数据类型 * const 指针变量名称

产生的效果是不能够修改指针所指向的地址,但是可以修改指针所指向内存空间的数据。

既然指针值在程序中不可被更改,也就是说必须在声明指针的时候,完成地址值的初始。

例如:

	int i=2;
	int j=3;
	int * const p=&i;
	p=&j;//不行
	*p=5;//可以

第三种:

const 数据类型 * const 指针变量名称

产生的效果同时限制不可修改指针值与所指向地址的存储值。
例如:

        int i=2;
	int j=3;
	const int * const p=&i;
	p=&j;//不行
	*p=5;//不行

二、const修饰词应用指针的指针

指针的指针变量存储的是指针的地址。

第一种:

const 数据类型 **  指针变量名称

数据类型 const **  指针变量名称

产生效果是限制不可修改最后所存储的变量值。

例如:

const int i=2;
const int j=3;
const int *pi=&i,*pj=&j;//指针变量的声明
const int **ppi=π//指针的指针的声明
**ppi=j;//不行
*ppi=pj;//可以
ppi=&pj;//可以

第二种:

  数据类型 * const * 指针的指针变量名称

  产生的效果是限制不可修改指针的指针所指向的指针地址。

例如:

const int i=2;
const int j=3;
const int *pi=&i,*pj=&j;
const int **ppi=π
**ppi=j;//可以
*ppi=pj;//不行
ppi=&pj;//可以

第三种:

数据类型  ** const  指针的指针变量名称

产生的效果限制不可修改指针的指针的地址。

例如:

const int i=2;
const int j=3;
const int *pi=&i,*pj=&j;
const int **ppi=π
**ppi=j;//可以
*ppi=pj;//可以
ppi=&pj;//不行






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值