我有以下数组:
int array[]={0,1,2,3,4};
我需要在数组列表中打印元素3
而不使用方括号。所以我不应该使用:
printf("%d",array[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索引的。