【C语言 const关键字】

【C语言 const关键字】,第1张

C语言中const 到底有啥用?这篇文章给你一次讲清楚 const的大作用 首先我们先来说一下const是什么东东? 在C语言中 const关键字用来修饰变量名为只读,仅此而已。 好的,让我们步入正题,开始探索const的密码 1.创建只读变量
const int count=50; //此时变量的值不可以修改
2.保护数组
const int array[]={1,2,3,4,5}
3.指向const的指针不能用于改变值
double rate[3]={1.32,1.89,9.63}

const double * pointer=rate;//p指向数组的首元素

*pointer=23.6;        //不允许

rate[0]=99.99;       //允许,因为rate未被const限定

pointer++;          //允许
4.把const数据或非const数据的地址初始化为指向const的指针或为其赋值是合法的
int rate[5]={1,2,3,4,5}

const int  locked[4]={1,2,3,4,5}

const int *pointer=rate;   //有效

pointer=locked;			   //有效

pointer=&rate[1];			//有效
5.只能把非const 数据的地址赋给普通的指针
int rate[5]={1,2,3,4,5}

const int locked[4]={1,2,3,4,5}

double *pointer=rate;  //有效   

double *pointer=locked; //无效     当然无效,必须无效,const修饰的数组本意就是只读,如果可以将地址赋值给指针,那指针岂不是可以修改数组的值,这岂不是自相矛盾?

pointer=&rate[1];       //有效
6.声明并初始化一个不能指向别处的指针
int  array[5]={1,2,3,4,5}

int * const pointer=array;//p指向数组的开始

pointer=&array[1];		//不允许,因为指针不可以指向别处

*array=50;	  	       //允许
7.声明指针既不能改变它所指向的值,也不能修改指向地址上的值
int  array[5]={1,2,3,4,5}

const int * const pointer=array;

pointer=&array[1];     //不允许

*pointer=100;         //不允许
8.对形参使用const
int sum(const int ar[],int n);

const告诉编译器,该函数不能修改ar指向数组中的内容。如果在函数中不小心使用类似ar[i]++这样的表达式,编译器会捕捉到这样的信息,并生成一条错误信息。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1499072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存