在C语言中,const是一个关键字,用于定义一个只读常量,常量一旦赋值就不能再改变。const定义的常量可以是全局的也可以是局部的。
const常量的语法为:const 数据类型 变量名 = 常量值;
例如:const int a = 10;
const的作用是保护变量的值不被修改。使用const关键字定义的常量在程序运行时不能被修改,从而保证了程序的稳定性和安全性。
另外,const常量可以防止误操作,比如在函数传参时,如果函数内部不需要修改传入的参数,可以将其声明为const,这样就可以避免意外修改参数值造成的问题。
还有一个作用就是编译器可以为const常量分配存储空间。由于const常量值是在编译时就可以确定的,因此编译器可以将其存储在ROM等只读存储器中,从而提高程序的运行效率。
在使用const的时候,需要注意以下几点:
(1)const变量的值不能被修改。
(2)const变量一定要进行初始化,否则编译器会给出警告。
(3)const变量一旦赋值之后,就不能再次修改。这意味着const变量在定义时必须赋初值。
(4)使用const定义的常量,其作用域只限于定义该常量的文件,即它是一个局部常量,在其他文件中不能访问。
const还可以修饰指针类型。在函数形参中,如果我们希望不改变函数调用时传入的指针的内容,可以在指针类型前面加上const关键字。这样就可以防止函数内部对指针内容的修改。
const修饰的指针主要包括两种类型:const指针和指向const的指针。
(1)const指针:指针本身不能修改,但是指针指向的变量可以修改。
(2)指向const的指针:指针本身可以修改,但是指针指向的变量不能修改。
例如:
const int *p = &a; //指向const的指针,p本身可以修改,但是a不能修改。
int* const p = &a; //const指针,p本身不能修改,但是a可以修改。
const int* const p = &a; //都不能修改,即p本身和a都不能修改。