一位朋友問我在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