第五章、数组
数组在C语言里的应用非常普遍,也相当灵活。教材里对此章讲解较初级,高阶应用估计是留着他的提高篇里讲述了。
先来描述数组,数组是相同数据类型的变量的集合。一定是相同的数据类型。
数组的声明方式也相当简单,即在变量后面添加方括号“【】”,int array[8],里面的值”8”即为数组的长度。在声明的时候数据括号内的数值一定为常量,主要因为C语言不支持变长的数组,换句话说,编译器在初始化时,会以此为该数组分配地址与空间。
int array; /* 声明int类型的变量array */
int array[8]; /*声明int类型的数组array[],数组长度为8 */
数组的引用也非常方便,方括号里的数值称为标号,如array[0],数组第一个元素,记住数组的标号是从“0”开始的。
数组的复制:这个用到的也不同,记录数组的复制是数组内部所有元素的复制,文中也告诉我们,一个变量用一个等号来赋值,而数组要用一堆等号来赋值。
多维数组就是数组的数组,起初可能很难理解,用一两次自然就懂了。
本章还提出了另外一个概念“宏定义”,宏的应用也是在编译阶段完成的,其是对文本的一个简单替换。为了增加程序的可读性,建议大家在常量的使用时通过宠定义来实现——这个是经验之谈。
对于宏的替换,编译器不会替换字符串字面量和字符常量中的部分内容,也不会替换变量名等标识符中的部分内容,举例来说:
#define AA (0)
#define AAAA (1)
上面是两个宏,“AAAA”会被替换为”1”,而不是“00”。