C零散知识点汇总之const关键字

简介: C零散知识点汇总之const关键字

C零散知识点汇总之const关键字


定义的const只读变量具有不可变性,但是不可作为数组的维数,也不可用于case之后。

const修饰的只读变量必须在定义的同时进行初始化。

编译器通常不会给普通const只读变量分配存储空间,而是将其保存在符号表中,这使得它成为一个编译期间的值,从而能给你减少不必要的内存分配,提高效率。

#define M 3            // 宏常量
const int N = 5;       // 此时并未将 N 放入内存中
int i = N;             // 此时给 N 分配内存,以后不再分配
int I = M;             // 预编译期间进行宏替换,分配内存。
int j = N;             // 没有进行内存分配
int J = M;             // 再次进行宏替换,又一次分配内存

使用const关键字好处:

1、修饰变量,只读,同时进行初始化,之后此常量再也不改变,能够节省空间,避免没必要要的内存空间分配,提升效率。

2、修饰数组,定义或者说明一个只读数组。

3、修饰指针,能够指定指针自己为const,也能够指定指针所指的数据为const,或两者同时指定为const。

const int *p;            // p可变,p指向的对象不可变。
int const *p;            // p可变,p指向的对象不可变。
int * const p;           // p不可变,p指向的对象可变。
const int * const p;    // 指针p和p指向的对象都不可变。

4、修饰函数的参数,能够防止参数意外改动,增加程序的健壮性。

5、修饰函数的返回值,返回值为const型,不能做为左值。

相关文章
|
1月前
|
C语言
C语言(指针详解)重点笔记:指针易错点,都是精华
C语言(指针详解)重点笔记:指针易错点,都是精华
32 0
|
1月前
|
机器学习/深度学习 C语言
【c语言基础题】— —第二版,可当作日常练习和期末复习,有奇效哟!
【c语言基础题】— —第二版,可当作日常练习和期末复习,有奇效哟!
85 0
|
6月前
|
存储 安全 Java
【C++】引用之带你“消除”C语言版数据结构教材的一些困惑(虽然是C++的内容,但是强烈建议正在学习数据结构的同学点进来看看)
【C++】引用之带你“消除”C语言版数据结构教材的一些困惑(虽然是C++的内容,但是强烈建议正在学习数据结构的同学点进来看看)
45 0
|
11月前
|
存储 C语言 C++
【C语言初阶】初学必看,深入了解指针的概念!看完让你不在害怕指针(图文并茂)
【C语言初阶】初学必看,深入了解指针的概念!看完让你不在害怕指针(图文并茂)
108 0
|
存储 C语言 C++
抽丝剥茧C语言(高阶)指针的进阶
抽丝剥茧C语言(高阶)指针的进阶
|
存储 C语言 C++
抽丝剥茧C语言(高阶)指针进阶练习
抽丝剥茧C语言(高阶)指针进阶练习
|
Linux C语言 C++
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(一)
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(一)
|
安全 编译器 C语言
【C语言】刨根问底 - 深剖const关键字
【C语言】刨根问底 - 深剖const关键字
71 0
【C语言】刨根问底 - 深剖const关键字
|
安全 编译器 网络安全
一些碎碎念以及类和对象零碎知识点补充
一些碎碎念以及类和对象零碎知识点补充
84 0
一些碎碎念以及类和对象零碎知识点补充
|
存储 编译器 C语言
C/C++零散知识点汇总之变量
C/C++零散知识点汇总之变量

热门文章

最新文章