C语言 基础知识之const(const是什么,const的作用,const的使用)
一、const是什么
const是C/C++中的类型修饰符。
二、const的作用
1、对变量声明只读特性,保护变量值以防被修改。
2、节省空间,避免不必要的内存分配。const修饰的变量在程序运行过程中只有一份拷贝。
3、提高程序运行效率。编译器不为普通const常量分配存储空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储和读取内存的操作。
三、const的使用
1、const和普通变量
(1)编译器在编译过程中把用到const变量的地方都替换成对应的值。为了执行这个操作,编译器必须知道const变量的初始值, 如果程序包含多个文件,则每个用了该const变量的文件,都必须能访问到它的初始值才行,要做到这一点,就必须在每一个用到该const变量的文件中都有对它的定义或声明。
默认状态下,const变量仅在文件内有效,当多个文件中出现了同名的const变量时,等同于在不同文件中分别定义了独立的const变量
定义一个const变量
const type value_name = value;
(2)对于有必要在文件间共享的const变量,在const变量定义和声明时添加extern关键字即可。
例如:
在test_extern_const.cpp中定义并初始化一个可被外部访问的const变量
extern const int test_extern_const = 0;
在test_extern_const.h中声明变量extern_const_test和函数print_test_extern_const_value
#ifndef _TEST_EXTERN_CONST_H
#define _TEST_EXTERN_CONST_H
extern const int test_extern_const;
#endif
在main.cpp中使用变量test_extern_const
#include
#include "test_extern_const.h"
using namespace std;
int main() {
cout<<"test_extern_const value is "< return 0; } 从main的运行结果可以看到,const变量test_extern_const被外部文件成功访问 2、const和引用 把引用绑定到const变量上,称为对常量的引用。与普通引用不同的是,对常量的引用不能修改它绑定的变量的值。 常量引用仅对引用可参与的操作做出了限定,对于引用的变量本身是不是一个常量未做限定。 const int test_const = 0; const int &reference_to_const = test_const; 3、const和指针 (1)指向常量的指针 指向常量的指针没有规定其所指向的变量必须是一个常量。指向常量的指针仅仅要求不能通过该指针改变变量的值。 const double value_name_1 = value; const double *pointer_to_const_1 = &value_name_1; double value_name_2 = value; const double *pointer_to_const_2 = &value_name_2; (2)常量指针 指针本身为常量,常量指针必须初始化,一旦初始化完成,它的值就不能再改变了。即不变的是指针本身的值而非指向的那个值。 int value_name = value; int *const const_pointer = &value_name;