const的作用,面试高频题!

const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。

它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08
C、C#等。

  • 1、 修饰变量
  • 2、 修饰数组
  • 3、 修饰指针
  • 4、 修饰函数参数

1、 修饰变量

C语言中采用const修饰变量,功能是对变量声明为只读特性,并保护变量值以防被修改。

int main()
{
    
    
	const int i = 1;
	i = 2;
}

结果如下:
在这里插入图片描述

上面这个例子表明,变量i具有只读特性,不能够被更改;若想对i重新赋值,如i = 10;则是错误的。值得注意的是,定义变量的同时,必须初始化。定义形式也可以写成int const i=5,同样正确
const修饰变量还起到了节约空间的目的,通常编译器并不给普通const只读变量分配空间,而是将它们保存到符号表中,无需读写内存操作,程序执行效率也会提高。

2、 修饰数组

数组元素与变量类似,具有只读属性,不能被更改;一旦更改,如程序将会报错。

int main()
{
    
    
	const int array[5] = {
    
     1,2,3,4,5 };
	array[0] = array[0] + 1;
}

结果如下:
在这里插入图片描述

3、 修饰指针

C语言中const修饰指针要特别注意,共有两种形式,一种是用来限定指向空间的值不能修改;另一种是限定指针不可更改

int main()
{
    
    
	int i = 5;
	int j = 6;
	int k = 7;
	const int* p1 = &i; //定义1
	int* const p2 = &j; //定义2

	*p1= 20;
	p2 = &k;
}

结果如下:
在这里插入图片描述

在定义1中const限定的是p1,即其指向空间的值不可改变,若改变其指向空间的值如p1=20,则程序会报错;但p1的值是可以改变的,对p1重新赋值如p1=&k是没有任何问题的。
在定义2中const限定的是指针p2,若改变p2的值如p2=&k,程序将会报错;但p2,即其所指向空间的值可以改变,如p2=80是没有问题的,程序正常执行。

4、 修饰函数参数

const关键字修饰函数参数,对参数起限定作用,防止其在函数内部被修改。所限定的函数参数可以是普通变量,也可以是指针变量。

void fun1(const int i)
{
    
    
	i++; //对i的值进行了修改,程序报错
}
void fun2(const int* p)
{
    
    
	(*p)++; //对p指向空间的值进行了修改,程序报错
}
int main()
{
    
    
	int i;
	int * p;
	fun1( i);
	fun2( p);
}

结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45313447/article/details/110314454