C语言中数组变量及用法

在C语言中,数组是一类复杂数据类型,数组元素可以是任意数据类型,但所有元素类型必须一致。C语言中的数组值得注意的地方有以下两点:

要理解C语言数组的运作机制,我们首先来声明并定义一个数组。例如

int a[3] = {3, 7, 9};

除了a被用作运算符sizeof的参数这一情形,在其他所有情形中数组名a都代表指向数组a中下标为0的元素的指针。正如我们合乎情理的期待,sizeof a的结果是整个数组a的大小,而不是指向数组a的元素的指针的大小。

从上面的理论我们不难看出,*a即数组中下标为0的元素的引用。例如,我们可以这样写:

*a = 84;

这个语句将数组a中下标为0的值设置为84。同样道理,*(a+1)是数组a中下标为1的元素的引用,依次类推。概而言之,*(a+i)即数组a中下标为i的元素的引用;这种写法是如此常用,因此它被简记为a[i]。

实际上,由于a+i与i+a含义一样,因此a[i]与i[a]也具有同样的含义。