栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言 const 与 指针 (一)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言 const 与 指针 (一)

若有错误,还望各位大佬告知,谢谢!

有这样一段代码:

        int  num1 =10;

        int num2=20;

        int *p =#

p代表的是 指向 通过以下代码可以证明 :

p=&num2;

现在有3种const 表示形式:

//第一种形式:
int *const p;


//第二种形式:
const int *p;
int const *p;


//第三种形式:
const int * const p
int const * const p

我们一 一 解析 

首先 我们理解一下 代码都是从右向左结合  const 和* 级别相同  意思就是说  const 和*  的位置很关键。        

        我们把const分为  在 *左边 在*右边 在*两边 这三种 。

第一种:int *const p           const在*右边

        前面说过,p代表的是指向  const先和p结合 限定了指向

        那么就有这样的分析:

  1. 指向的数据可以改变 :*p =666;//正确        
  2. 指向不能改变:p=&num2;//错误

第二种:const int *p 和int const *p  这两个是一样的效果

        前面说过从右向左原则  那么  * 先与p 结合   const修饰的是*p    *p是 指向的值

        那么就要这样的分析:

  1. 指向的数据不能改变:*p=666;//错误
  2. 指向能改变p=&num2;//正确

第三种 const int * const p  和 int const * const p

        这里const 将 指向 和 指向的值都限定了 那么意思就是说:

        *p=200;不行

        p=&num2;不行

综上所述:

        打个比方,你去银行取钱,你有一个银行账户,const在 * 前 可以限制你修改自己的银行金额 ,const在 * 后 可以限制你不能使用别人的银行账户,const在*前后都有 就可以让你没法取钱和使用别人的银行账户。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号