一级棒(Eachfun)
数组
发表时间:2006-06-28 23:59:04 关键词:C++,MFC,VC,Primer,编程,教程,读书

  进入本书第四章,开始讲“数组”了。数组难不难?这不好说。但是数组非常重要这是肯定的,有许多基本的算法就是与数组一起出现的——比如冒泡排序法。而离开了那些算法,数组本身也失去了价值。
  注意:阅读本章时要对“维数”概念加以小心,按平时的理解,“维数”是多维数组中的概念,但是本书中的“维数”指的是元素个数。为了避免干扰,我在阅读笔记中用“个数”来取代“维数”。
  引用:在出现标准库之前,C++程序大量使用数组保存一组对象。而现代的C++程序则更多地使用vector来取代数组,数组被严格限制于程序内部使用,只有当性能测试表明使用vector无法达到必要的速度要求时,才使用数组。
  笔记:我汗一个先!原来我只是一个“古代”的C++程序员。
  数组的定义必需指明元素的个数,而且必须是“常量表达式”。这一点想必理解数组的人都会操作(即使弄错了,编译器也会立即报错),但是真正去思考它的人也许不多。这里的“常量”概念是指程序在编译阶段就能求值的量。
  在C时代,我们并不会过多地理会“常量”这个概念,那是因为C时代没有const,而define这个东西,谁都知道它是在编译前就直接替换的。但是到了C++时代,由于const的存在,使“常量”这个概念变得更普杂了。
  const size1 = 5;//这是个编译时就可以求值的常量,它可以在数据的定义中使用。它的作用仅仅相当于“define”。
  const size = getsize();//这个常量是运行时才能求值的。
  除此之外,“常量求达式”的概念还指明这可是以一个算术式,只要编译时能求值。如“char username[max_name_size + 1];”这种用法非常常用,因为它可以避免在定义数组时忘掉NULL。
  数组成员的初始化可以显式指定,也可以不指定。显式指定时指定成员的个数可以小于等于实际个数,但不可以比实际个数大,如果小于,则其它元素视为未指定。对于未指定的元素的初始值,它们遵循变量的初始化原则,请看《变量初始化》一文。
  绝大多数书本在介绍“字符串”时都会提到,字符串其实是字符数组,只是因为它们太常用,才会有专门的使用方法。本书也不例外。
  本书没有提数组的实质,因为“指针”还没有进入读者的眼睛。
  引用:数组的显著缺点在于:数组的长度是固定的,而且程序员无法知道一个给定数组的长度。
  笔记:其实这正在程序员心中的一个痛。当我把数组作为参数传送给函数时,函数该怎么处理这个东西?要么是对大小有个事先的约定——这样的程序将失去很多通用性,要么连大小一起传递给人家。

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2008 Eachfun.Com, All Rights Reserved 一级棒网络
苏ICP备05080156号
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!