友人から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言語の質問があることがわかります)、lookテンプレートに変換する。彼らはC++に驚くほどの追加機能です。 – Amit