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型,不能做为左值。

相关文章
|
编译器 C语言
C零散知识点汇总之static关键字
C零散知识点汇总之static关键字
|
存储 编译器 C语言
C/C++零散知识点汇总之变量
C/C++零散知识点汇总之变量
|
存储 程序员 C语言
指针一些关键知识点和难点的总结
指针一些关键知识点和难点的总结
94 0
|
存储 编译器 C语言
【C++知识点】多文件编程
【C++知识点】多文件编程
268 0
|
编译器 C语言 C++
C/C++零散知识点汇总
C/C++零散知识点汇总
|
C++ 编译器 存储
C++中的零散重要知识点
(一):类相关 static 在类中的关键是用在类中的静态变量除了整型,枚举类型(枚举也是以整型存储的)的const类型可以在类中初始化。其他的都不能在类中初始化。
942 0
|
C++
c++零散知识点
如果在类体外定义inline函数,则必须讲类定义和成员函数定义都放在同一个头文件里面(或写在同一个源程序文件中)否则编译时无法进行置换(将函数代码得拷贝嵌入到函数调用点中)
128 0
|
编译器
指针这块必须牢牢把握!(初阶-下)
指针这块必须牢牢把握!(初阶-下)
122 0
指针这块必须牢牢把握!(初阶-下)
|
C++
【C++学习】const关键字释疑
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 我们先看看以下代码: #include int main() { const int a = 1; a = 2; printf("%d/n", a); return 0; } 你一看就知道这个一定在编译的时候报错:assignment of read-only variable a。
641 0
|
8月前
|
编译器 C++
C++初阶学习第四弹——类与对象(中)——刨析类与对象的核心点
C++初阶学习第四弹——类与对象(中)——刨析类与对象的核心点
36 0

热门文章

最新文章