在程序开发中,有时并不希望使用者修改程序中的某些数据,此时可以使用const修饰符,从而提高程序的安全性和可靠性。
const通常与指针配合使用,根据const在语句中出现的位置,const与指针配合有一下三种用法:
- 常量指针
在定义指针之前,const放在数据类型之前,则构成常量指针。常量指针的用法如下:
const 数据类型* 指针变量名;
该指针指向的数据是一个常量,该数据不能被修改,示例如下:
int num = 10;
const int* p = #
在以上示例中,p指向的int型变量10不能被修改,此时若对num重新赋值:
num = 5;
则在调试的时候回报错,提示表达式中的num必须是可以修改的左值。
- 指针常量
若const放在指针名之前,则该指针与const组成一个指针常量,其语法格式如下:
数据类型* const 指针变量名;
指针常量是一个指针型的常量,表示该指针的指向不能被修改,假设有如下定义:
int a = 10;
int b = 5;
int* const p = &a;
若此时改变指针p的指向,对其进行如下操作:
p = &b;
则在调试的时候回报错,提示表达式中的p必须是可以修改的左值。
- 指向常量的常指针
若const既出现在数据类型之前,又出现在指针变量名之前,则此时为一个指向常量的常指针,其语法格式如下:
const 数据类型* const 指针变量名;
此时不光指针指向的数据不能被修改,指针的指向也不能被修改。