黑马程序员-C语言回顾-const关键字介绍及使用

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1、什么是const?

 

const是一个类型修饰符

使用const修饰变量则可以让变量的值不能改变。

常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。

 

2、const有什么主要的作用?

1)可以定义const变量,具有不可变性。

const int max = 100   max的值不能改变。

 

2)便于进行类型检查,使编译器对处理内容有更多了解,消除了些隐患。

 

3)可以避免意义模糊的数字出现,同样可以很方便的进行参数的调整和修改。

同宏定义一样,可以所知道不变则已,一变全变!

 

4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。

 

5)可以节省空间,避免不必要的内存分配。

 

3、如何使用const?

 

1)修饰一般变量

一般变量是指简单类型的变量。这种变量在定义时,修饰符const可以用在类型说明符前,也可以用在类型说明符后。

例如:

int constx = 2;

const intx  = 2;

特殊情况:

#include<stdio.h>
 
intmain(int argc, const char * argv[]) {
   const int a  = 10;
   int *p = &a;
   *p = 20;
   printf("a  = %d\n",a);
   printf("&a = %p\n",&a);
   printf("*p = %d\n",*p);
   printf("p  = %p\n",p);
   return 0;
}


结果:

a  = 10
&a = 0x7fff5fbff79c
*p = 20
p  = 0x7fff5fbff79c
Program ended with exit code: 0


 

 

2)修饰指针变量

1)const修饰的指针变量指向可变,指向的变量的值不可变

int a = 10;
int b  = 20;
const  int  *p = &a;
p = &b; // 可以
// *p = 100;不可以


 

2)const修饰的指针变量,指针变量指向的变量值可以变,指向不能变

int * const p2 = &a;
*p2 = 100; //可以
//p2 = &b;    不可以


 

3)const修饰的指针变量的指向和值,都不能改变。

const int  * const p3 =&a;
//  p3 = &b;  错误的
//  *p3  = 100; 也是错误的


 

结论:

看const和*的位置来判断什么不能改变。

1)如果const在*的左侧:表示指针变量指向的变量的值不能改变,但是指针指向可以改变。

2)如果const在*的右侧:表示指针变量的指向不能改变,但是指向的变量的值可以改变。

3)如果const出现在*的两侧,表示指针变量的指向和值都不能改变。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值