const与指针的结合使用

本文介绍了指针的概念,包括如何定义和使用指针,然后详细探讨了const关键字与一级指针和二级指针的结合使用,包括const修饰指针和指针所指内容的不同情况,解释了const在不同位置对代码行为的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

文章目录

一、指针是什么?

二、指针定义

三、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未做限制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值