1. const 常量类型表示一个常值变量,即值不能被改变的变量
2. 用const声明的变量必须用常量或常量表达式初始化
3. 用const限定限定该变量是程序设计的好习惯,如数组长度
const int size =20;
int arr[size]={1,2,3}
4. 常指针与常值变量指针
常指针的地址不可以改变
常值变量指针的值不能变(举例如下)
const x=3.14;
double* const p1=&x; //常指针:地址不能变
const double* p1=&x; //常值变量指针:值不能变
const int size = 20;
int a[size];
const int b[4] = { 1,2,3,4 };
size = 100;//错误:非法修改常值变量
size++;//错误:非法修改常值变量
b[0] = 10;//错误:非法修改常值变量
double arr[5]={1.1,1.2,1.3,1.4,1.5};
const double x=12.23;
double* p1=&x;//错误:普通指针不能指向常值变量
const double*p2=&x;//正确:左边为常值变量指针
p2=arr;//正确:常值变量指针可以改变地址
p2++;//正确:这句改变的是常值变量指针的地址
(*p2)++;//错误:常值变量指针的值不能改变
double *const p3=arr;//正确:常指针指向数组首地址
p3++;//错误:常指针的地址不能改变
(*p3)++;//正确:常指针的值可以改变
double* const p4=&x;//错误:常指针不能指向常值变量
const int* Fun()
{
static int a=1;
//加上static是为了保留a的值(a的地址不变),即在第二次调用该函数时a=2
a++;
return &a;
}
int y;
y=*Fun();//正确
*Fun()=2;//错误