C语言 const关键字

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]++这样的表达式,编译器会捕捉到这样的信息,并生成一条错误信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值