我有以下数组:
int array[]={0,1,2,3,4};
我需要3
在不使用方括号的情况下打印数组列表中的元素。所以我不应该使用:
printf("%d",array[3]);
如何在不使用方括号的情况下实现相同的效果?
array[n]
相当于*(array + n)
。
你可以只使用*(array + 3)
. 这在语法上不同于array[3]
但在功能上相同。
该表达式array + 3
为您提供数组中第四个元素的地址(索引号 3),并针对元素大小进行了适当的缩放。换句话说,它与使用 获取元素的地址相同&(array[3])
。
然后*
解引用提取该地址(正确类型)处的值。
要打印第 n 个元素,我们知道arr[n-1] == *(arr+n-1)
。使用 n-1 是因为 C 中的数组是 0 索引的。