C语言中关键字const

话不多说,先上代码:

#include<stdio.h>
#include<stdlib.h>
#define N 10   //CPU产生,10 . 1010

//const是伪常量,限定编译器尽量不直接修改

void main()
{
const int num = 10;//避免直接赋值的修改,不可以避免间接赋值的修改
const int *p1 = &num;//创建指针指向const int 
int *p2 = (int *)p1;
*p2 = 100;
printf("%d", num);
getchar();

}

很明显,结果是100,修改了const int num的值。

const关键字可避免直接赋值的修改,不可以避免间接赋值的修改。


C++中const关键字

1、const修饰普通类型的变量

用法如上

2、const修饰指针

一、const int *p=8;

表示指针指向的内容不可变,不能通过指针p修改这个值,换句话说,就是*p为const,不能被修改。

如:

int a=16;

int b=12;

const int *p=&a;


*p=20;(NO)

 p=&b;(OK)

二、int a=8;

      const * int p=&a;

表示指针P指向的内存不能改变,其地址上的内容可以改变。

例:

int a=16;

int b=12;

const *int  p=&a;


*p=20;(OK)

 p=&b;(NO)

三、int a=8;

const * int *p=&a;

P指向的内容和地址都不能改变。

3、尽可能使用const修饰函数形参(条件:只有一层间接关系,且数据为基本类型)

理由:

可以避免无意间的修改数据而导致编程的错误(保护数据),使用const修饰形参,实参可以为const也可以为非const,而形参如果为非const,则实参也只能为非const。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值