指针学习系列(二):const 与 指针

本文详细阐述了C++中const与指针的三种结合方式:常量指针、指针常量及两者结合。通过实例演示了如何在不同场景下灵活运用这些概念,以实现对变量的读写操作的精确控制。

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

const 与指针变量的结合主要有3种情况:常量指针、指针常量及两者的结合。


常量指针:指向常量的指针,顾名思义,就是指针指向的变量是一个常量,也就是指针指向的地址中的内容不能修

改。当然这样的指针也是可以指向变量的,而且很多时候我们都是这么做的。在类中,尤其是对一个对象进行读操作

时,般我们都希望不改变它的值,但我们有时却还需要通过别的函数对这个对象进行写操作。这时将这个对象声明

为一个量而不是常量,然后将只对其进行读操作数形参设为常量指针,这样就可以协调的实现不同函数对其的

作而不现混乱。

常量指针的声明方式有两种:

  1. #include<stdio.h>  
  2.   
  3. int main()  
  4. {  
  5.     int a = 10;  
  6.     const int* p1 = &a;  
  7.     int const* p2 = &a;  
  8.       
  9.     return 0;  
  10. }  
p1和p2都是常量指针,也就是说这时我们不能通过p1和p2指针修改a的值,但可以直接通过给a赋新的值来改变a的

值。


指针常量:指针本身就是一个常量,也就是说指针指向的地址是不可改变的。而常量指针是可以改变其指向的地址

的。但是指针常量却可以改变其指向地址里的内容。

  1. #include<stdio.h>  
  2.   
  3. int main()  
  4. {  
  5.     int a = 10;  
  6.     int b = 100;  
  7.     const int* p1 = &a;  
  8.     intconst p2 = &a;  
  9.     p1 = &b;    //正确,常量指针可以改变其指向的地址  
  10.     p2 = &b;    //错误,指针常量不可以改变其指向的地址  
  11.     *p1 = 25;   //错误,常量指针不可以改变其指向地址里的内容  
  12.     *p2 = 25;   //正确,指针常量可以改变其指向地址里的内容  
  13.   
  14.     return 0;  
  15. }  
要注意的是,指针常量必须在定义时就赋初值,而一般指针只要在使用之前赋初值就可以。

指针常量的声明方式如下:

  1. #include<stdio.h>  
  2.   
  3. int main()  
  4. {  
  5.     int a = 10;  
  6.     intconst p = &a;  
  7.     return 0;  
  8. }  

第三种 const与指针的结合的声明方式如下:

#include<stdio.h>

int main()
{
	int a = 10;
	const int* const p = &a;

	return 0;
}
从其声明的方式也可以看成这是前两种结合方式的联合体。也就是说这种指针同时具有常量指针和指针常量的限制,

即这种指针即不能修改其指向的地址也不能修改其指向地址里的内容。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值