10.10 关键概念

当需要存储同种类型的许多元素时,数组是最佳选择。C把数组归于派生类型是因为它是建立在其他类型之上的。也就是说,您不是仅仅声明了一个数组,而是声明了一个int数组、float数组或者其他类型的数组。所谓的其他类型本身就可以是一种数组类型,在这种情况下,可以得到数组的数组,或称为二维数组。

编写处理数组的函数常常是有利的,因为使特定的函数执行特定的功能有助于程序的模块化。使用数组名做为实际参数时,主要的一点是要知道并不是把整个数组传递给函数,而是传递它的地址;因此相应的形式参量是一个指针。处理数组时,函数必须知道数组的地址和元素的个数。数组地址直接传递给函数,而数组元素的个数信息需要内建于函数内部或被做为独立的参数传递给函数。后者更为通用,因为这种方法可以处理不同大小的数组。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

数组和指针之间是紧密联系的,指针符号和数组符号的运算往往可以互换使用。正是由于这种紧密的联系,才允许处理数组的函数使用指针(而不是数组)作为形式参量,同时在函数中使用数组符号处理数组。

必须用一个常量表达式为传统的C数组指定数组的大小,因此在编译时数组大小已经确定。C99标准提供了变长数组,这种数组的大小可以是一个变量。这就允许变长数组的大小可以在程序运行时才确定。