C中的const

const :译为恒定不变的意思;所以被const定义过的变量人们经常叫它常量,但这个是不准确的。在精确的来说在C中被const修饰过的变量其实本质上还是变量,没有变成常量,只是属性变成了只读,不可修改。但在C++中被const修饰过的变量就变成了常量。为了验证这个事实大家可以通过下方代码进行测试。

大家先分别创建.cpp和.c文件进行测试看看结果:

//分别建一个.cpp文件和一个.c文件运行以下代码看看结果
#include<stdio.h>
int main()
{
    const int Max=100;
    int arr[Max];
}

测试后我们发现,同样的代码在.c文件也就是在C中是无法通过的,但在.cpp文件也就是C++文件是可以编译通过的.那么原因是为什么呢?

我们知道定义数组时必须制定数组的大小,   如果在C中被const修饰的变量变成了常量那肯定可以通过,所以也就证明了C中const修饰的变量仍然是变量,只是属性只读而已.如果像C++中是常量那就直接通过了

注意:const修饰的变量必须在定义时进行初始化,原因是:和const的特性有关,const把变量的属性变为只读,意味着无法进行修改只能读取该变量的值,所以你定义的时候不初始化以后就没机会初始化了.那没有初始化的变量还和废物有什么区别。

const的使用:

 1、修饰一般变量

       const int a=10;表示a是一个常变量不可修改。也可以表示为int const a=10;

2、修饰数组

       定义一个只读数组可以采用下面的格式

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

       或者

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

3、修饰指针

      const int*p //p可变,p指向的对象不可变;

      int const *p//p可变,p指向的对象不可变;

      int * const p;//p不可变,p指向的对象可变;

      const int * const p;//指针p和指针p指向的对象都不可变;

4、修饰函数的参数

     const修饰符可以修饰函数的参数,作用是不希望在函数体内被意外使用.

     比如说:void(const int *p)

5、修饰函数的返回值

     比如:const int fun();

以上就说C中const的使用,在C++中还有些补充.感兴趣的可以自己研究一下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值