博客
关于我
const与常量,傻傻分不清楚~
阅读量:396 次
发布时间:2019-03-06

本文共 610 字,大约阅读时间需要 2 分钟。

当数组的长度在运行中才能够确定时,普通的静态数组无法满足要求,此时需要动态数组来实现.

今天突然想,const变量在初始化时可以接受变量的赋值,那么可不可以用它来定义一个静态数组呢?于是有下面的尝试:

int main(){    int count = 2;    const int DIM0 = count; return 0;}

这样去初始化DIM0是没有问题的,程序可以运行,DIM0的类型是const int;

 

接着在下面添加了一行,编译器却在第4,5行都报"表达式的计算结果不是常数"的错误.

1 int main()2 {3     int count = 2;4     const int DIM0 = count;5      int a[DIM0] = { 1, 2 };6 7     return 0;8 }

 

接着对比了下面的代码:下面的能够运行是没有问题的,此时DIM0的类型也是const int.

那么问题就来了,都是const int的DIM0,为什么前面的会出错,而下面的没有问题的.

这是因为const int和常量是两回事:const只能说是不能够修改,并不代表常量的意思,具体还是要看后面的值.

1 int main()2 {3     const int DIM0 = 2;4      int a[DIM0] = { 1, 2 };5 6     return 0;7 }

 

转载地址:http://sobkz.baihongyu.com/

你可能感兴趣的文章
c++中ifstream及ofstream超详细说明
查看>>
web项目配置
查看>>
基于单片机简易信号误差分析设计-全套资料
查看>>
基于单片机简易脉搏测量仪系统设计-毕设课设资料
查看>>
Javascript中String支持使用正则表达式的四种方法
查看>>
eclipse引用sun.misc开头的类
查看>>
Servlet2.5的增删改查功能分析与实现------删除功能(四)
查看>>
spring启动错误:Could not resolve placeholder
查看>>
invalid byte sequence for encoding
查看>>
技术美术面试问题整理
查看>>
C++学习记录 五、C++提高编程(2)
查看>>
ORB-SLAM2:LoopClosing线程学习随笔【李哈哈:看看总有收获篇】
查看>>
Codeforces Round #305 (Div. 1) B. Mike and Feet(单调栈)
查看>>
js求阶乘
查看>>
简单的xml读取存储方法(未优化)
查看>>
Making the grade 和Sonya and Problem Wihtout a Legend
查看>>
Nginx---惊群
查看>>
项目中常用的审计类型概述
查看>>
(九)实现页面底部购物车的样式
查看>>
python-day3 for语句完整使用
查看>>