C使用const详细(学习笔记)

本文详细解释了C++中const关键字在声明变量、指针类型以及作为形参时的作用,重点讨论了常量指针、可修改指针的区别,以及如何避免意外修改常量数组。

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

一、声明变量
1、const放在*之前,不能改指向的值。可以改指向地址。(指向的值为常量)

double rates[5]={88.99,100.12,59.45,183.11,340.5};
const double * pc=rates;//等同double const * pc=rates
pc=&rates[2];//有效。
*pc=92.99;//无效。

2、const放在*之后,不能指向地址。可以改指向的值。(指针本身是常量)

double rates[5]={88.99,100.12,59.45,183.11,340.5};
double * const pc=rates;
pc=&rates[2];//不允许。
*pc=92.99;//有效。

3、const在*的前后使用2次,不能改指向的值,不能改指向地址。

double rates[5]={88.99,100.12,59.45,183.11,340.5};
const double * const pc=rates;
pc=&rates[2];//不允许
*pc=92.99;//不允许

4、const放在*之前的指针,可以指向const数据或非const数据。

//带const的指针,可以改变指向的地址。只是不能通过指针改变量值。
double rates[5]={88.99,100.12,59.45,183.11,340.5};
const double locked[4]={0.08,0.075,0.0725,0.07};
const double * pc=rates;//有效
pc=locked;//有效。
pc=&rates[3];//有效

5、普通指针,不能指向const数据,只能指向非const数据。

double rates[5]={88.99,100.12,59.45,183.11,340.5};
const double locked[4]={0.08,0.075,0.0725,0.07};
double * pc=rates;//有效
pc=locked;//无效。
pc=&rates[3];//有效

二、作为形参

1、对形参使用const,告诉编译器,该函数不能修改arr指向的数组中的内容。

int sum(const int * arr,int n);

2、不要把常量数组传给形参没有const的函数

mult_array(double * arr,int n);

const double locked[4]={0.08,0.075,0.0725,0.07};
mult_array(locked,4);//不要这么干。函数可能会修改数组的值,但常量不允许修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C#气氛组队员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值