-3

我有以下数组:

int array[]={0,1,2,3,4};

我需要3在不使用方括号的情况下打印数组列表中的元素。所以我不应该使用:

printf("%d",array[3]);

如何在不使用方括号的情况下实现相同的效果?

4

3 回答 3

4

array[n]相当于*(array + n)

于 2012-09-29T07:43:49.153 回答
2

你可以只使用*(array + 3). 这在语法上不同于array[3]但在功能上相同。

该表达式array + 3为您提供数组中第四个元素的地址(索引号 3),并针对元素大小进行了适当的缩放。换句话说,它与使用 获取元素的地址相同&(array[3])

然后*解引用提取该地址(正确类型)处的值。

于 2012-09-29T07:43:44.010 回答
0

要打印第 n 个元素,我们知道arr[n-1] == *(arr+n-1)。使用 n-1 是因为 C 中的数组是 0 索引的。

于 2012-09-29T09:34:31.987 回答