配列の添え字の角括弧 [ ] を関数の戻り値につける

教育用の覚書
C言語の角括弧 [ ] は「配列添え字演算子(array subscript operator)」と言い、

(アドレスをくれる何か)[i] を (*((アドレスをくれる何か)+(i))) と同じものとして扱う
というルールなので、例えば int * 型の戻り値の関数の呼出しにくっつけて func(x)[2] みたいな書き方をしても動作する。以下、サンプルコード

#include <stdio.h>
int *func ( int *a ) {
  return a+1;
}
int main (void) {
  int a[5]={0,1,2,3,4};
  printf("%d\n", func(&a[1])[2] );
}

このコードは "4" を出力する。なぜなら (a[1]のアドレス) → (func()で一つとなりのアドレス、つまり a[2]) → ([2]で二つ隣のアドレス、つまり a[4])となるから。