一位朋友问我在C中写一个函数返回数组的第100个元素。我对C不是很熟悉,所以我不确定如何创建一个可以对任何类型的数组进行这样操作的泛型函数,所以我欺骗并假定它是一个整数数组,并且编写了这个函数:这看起来不像一个功能。这是什么?
int GetHundredthElement(int *array) {
return array[100 - 1];
}
(该- 1
是那里,因为数组是零索引)
我问他怎么做,将任何类型的数组的工作的功能。他告诉我,有一个简单的方法来做到这一点:
int GetHundredthElement = 100 - 1;
而且这种“功能”可以这样调用:
GetHundredthElement[array];
我试了一下,和它的工作,但不对我来说看起来像一个函数,因为它使用了括号表示法,这不是函数调用用C编写的方式。我并不十分清楚这些代码在做什么或者它是如何做的。这里发生了什么?
@ K-ballo有正确答案。但是,在将来,当你想要制作更复杂的函数时,可以使用任意精度类型(int,float,double等),并且如果你有权访问C++(我认识到C语言特别提到的问题),进入'模板'。它们是C++的一个惊人的补充。 – Amit