const的用法:
一、 保持变量的值
在声明变量为 const之后, 该变量的值不能被改变;
例:
int a=5;//a为普通整形变量
const double b=5.5;//b为const变量
a=10;//有效,a的值可以改变
b=10.1;//无效,const声明的变量不能被改变
二、保护实参的数据不变(典型为数组):
例:
int sum(const int arr[]);//声明函数的形参为const
int sum(const int arr[])//函数的实现部分,形参数组为const
{
int total;
for(int i=0;i<10;i++)
total+=arr[i];
return total;
}
上面的例子中, const会告诉编译器,该函数不能修改arr所指向的数组中的内容,例如:arr[i]++的表达式将会出错,在需要调用实参的数值但又不改变其数值的情况下,const很好的保护了实参的原来数值。指针
三、 指针中常见的三种const 定义方法:
1. 指向const的指针的值不变
指向const的指针不能改变其指向的地址的值,但是能改变指向
int arr[5]={0,1,2,3,4};
const int *p=arr; //定义一个指向const的指针,指向数组arr首地址
*p=arr[2]; //想要改变指向的值,错误!
p=&arr[2]; //改变指向,可以
2.const指针的指向不变
不能改变指针的指向, 但是可以改变指向的地址的值
int arr[5]={0,1,2,3,4};
int * const p=arr; //定义一个指针,指向数组arr首地址
*p=10; //改变指向的值,可以
p=&arr[2]; //想改变指向,错误!
3.指向和指向的值都不能改变
既不能改变指针的指向,也不能改变指针指向的值
int arr[5]={0,1,2,3,4};
const int * const p=arr; //定义一个指针,指向数组arr首地址
*p=10; //想改变指向的值,错误!
p=&arr[2]; //想改变指向,错误!
const在指针中的应用这三种常见的方式,在面试中经常出现,还是很有必要掌握的!
By Lalmon
10/21/2019
Beijing
转载请注明,谢谢!