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

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

c 复制代码
int sum(const int * arr,int n);

2、指向const的指针不能用于改变值

3、把const数据或非const数据的地址初始化为只想const的指针或为其赋值时合法的

c 复制代码
//带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];//有效

4、只能把非const数据的地址赋给普通指针。很合理,因为普通指针可以修改变量值,但常量值不允许修改。

c 复制代码
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];//有效

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

c 复制代码
mult_array(double * arr,int n);

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

6、const放在*的后面,可以声明一个不能指向别处的指针。可以通过指针修改变量

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

7、const在*的前后使用2次,声明的指针既不能指向别处,又不能修改变量。

c 复制代码
double rates[5]={88.99,100.12,59.45,183.11,340.5};
const double * const pc=rates;
pc=&rates[2];//不允许
*pc=92.99;//不允许
相关推荐
LDR0067 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
Luminous.7 天前
C语言--day30
c语言·开发语言
玖玥拾7 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
謓泽7 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
不会C语言的男孩7 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
2601_951643887 天前
C语言长文整理,关键字和数据类型
c语言·数据类型·关键字·嵌入式开发·格式化输出
m0_547486667 天前
《C#语言程序设计与实践》 全套PPT课件
c语言·c#·c语言程序设计
✎ ﹏梦醒͜ღ҉繁华落℘7 天前
编程基础 --高内聚,低耦合
c语言·单片机
QK_007 天前
C语言 static 关键字三大作用
c语言·开发语言
隔窗听雨眠7 天前
C语言函数递归从入门到精通(下):性能优化与工程实践
c语言·算法·性能优化