在“C”打印数组值中使用数组而不使用大括号

时间:2012-09-29 07:42:30

标签: c arrays printf

我有以下数组:

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

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

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

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

您可以使用*(array + 3)。这在语法上与array[3]不同,但在功能上相同。

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

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

答案 2 :(得分:0)

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