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

const与指针的结合使用

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

const与指针的结合使用

文章目录
  • 一、指针是什么?
  • 二、指针定义
  • 三、const结合指针
    • 1.const与一级指针结合
    • 2.const与二级指针结合
一、指针是什么?

指针是程序数据在内存中的地址,而指针变量是用来保存这些地址的变量。

二、指针定义

类型 *变量名称

int a=10; a是一个普通的整型变量 

int *p;   //p与*结合,所以说明p是一个指针,然后再与int 结合,说明指针所指向的内容的类型为int 型.所以p是一个返回整型数据的一级指针 

p=&a;  //p相当于a取地址

*p=a;  //解引用

int **q;  //q先与*结合,则q 是一个指针,然后再与*结合,说明指针所指向的元素是指针,然后再与int 结合,说明该指针所指向的元素是整型数据.所以q是一个返回整型数据的二级指针 

q=&p;  //q相当于一级指针取地址

**q=a;  //q解一次引用(*q)==p,再解一次引用(**q)==a

指针大小:x86系统下指针大小为4字节(int指针类型,double指针类型,char指针等)

                  x64系统下指针大小为8字节(int指针类型,double指针类型,char指针等)

定义数组int arr[5]={1,2,3,4,5}     其中[]也有解引用的能力

int *p=arr;

*p<=>*(arr+0)  //1

*(p+2)<=>*(arr+2)<=>arr[2]  //(p+2)首地址向后偏移两个单元格,解引用指针指向第三个单元格的元素3;arr[2]=3

三、const结合指针

C++的语言规范:const修饰的是离它最近的类型

1.const与一级指针结合

代码如下(示例):

 (1)错     const作用于*p,则不能通过解引用(*p)改变a的值

 (2)对     p本身没有被const限制,所以指针变量p的指向可以改变

(3)对    const作用于p本身,*p没有被const限制,可以通过解引用(*p)改变a的值

(4)错     const作用于p本身,所以指针变量p的指向只能指向a的地址,不可以被改变

(5)(6)错

*p和p本身都被const所限制,不可以通过解引用(*p)改变a的值,也不能改变指针变量p的指向

(7)错

a,b皆为常变量  "const int *" 类型的值不能用于初始化 "int *" 类型的实体    

const int *p=&a;正确

2.const与二级指针结合

代码如下(示例):

(1)对(2)对

二级指针s1没有做任何限制,二级指针s1指向一级指针q的地址,不能通过*p改变a的值但可以通过**s1改变a的值

(3)对(4)对(5)错

const修饰**t1,不能通过**t1改值

(6)错(7)对

const修饰*s2,不能通过*s2操作

**s2未做限制

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

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

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