愿天天向上,愿学以致用,愿掌握生活

数组定义

上一篇 / 下一篇  2007-10-19 14:36:36 / 天气: 晴朗 / 心情: 平静 / 个人分类:C++ Primer

数组定义由类型名,标识符和维数组成.维数指定数组中包含的元素的数目,它被写在一对方括号里边.我们必须为数组指定一个大于等于1 的维数.维数值必须是常量表达式——即,必须能在编译时刻计算出它的值.这意味着非const 的变量不能被用来指定数组的维数.
下面的例子包含合法的和非法的数组定义:

extern int get_size();
// buf_size 和max_files 都是const
const int buf_size = 512, max_files = 20;
int staff_size = 27;
// ok: const 变量
char input_buffer[ buf_size ];
// ok 常量表达式: 20 - 3
char *fileTable[ max_files - 3 ];
// 错误: 非const 变量
double salaries[ staff_size ];
// 错误非const 表达式
int test_scores[ get_size() ];

虽然staff_size 被一个文字常量初始化,但是staff_size 本身是一个非const 对象,系统只能在运行时刻访问它的值,因此它作为数组维数是非法的.

但是用户必须清楚,C++没有提供编译时刻或运行时刻对数组下标的范围检查.除了程序员自己注意细节,并彻底地测试自己的程序之外,没有别的办法可防止数组越界.能够通过编译并执行的程序仍然存在致命的错误,这不是不可能的.


TAG: 数组定义

 

评分:0

我来说两句

日历

« 2024-03-07  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 20856
  • 日志数: 30
  • 建立时间: 2007-10-02
  • 更新时间: 2007-11-14

RSS订阅

Open Toolbar