C++ 配列のちょっと変わった呼び方
あいさつ
どうも、はかせです。
今日も体調不良でお布団のお世話になっていました。
なのでTwitterを眺めていたんですが、
そこで面白い書き方を見つけたので試してみました。
配列の変わった呼び方
言葉でうまく説明できそうにないのでコード上げますね。
int main(int argc, char const* argv[]) { #if _DEBUG _CrtSetDbgFlag (_CRTDBG_LEAK_CHECK_DF | _CRTDBG_ALLOC_MEM_DF); #endif int a[] = {0,1,2,3,4,5}; for(int i = 0;i < 6;i++) { std::cout << a[i] << "," << i[a] << std::endl; } getchar(); }
実行結果は画像付きでTwitter上げたんでそちらをどうぞ
c++でやってみたけど本当だった
— hakase@ゲーム (@hakase70945250) January 19, 2019
おもしろw pic.twitter.com/NrSecE9tzJ
私はこの書き方を今日初めて知りました。
理屈がどうとかっていうより省略記法の1種みたいです。
要は
a = a + 1; a += 1;
これと同じイメージだと思います。
あとがき
今日はTwitterで見たことない書き方があったので試してみました。
実際書いてみて動いてマジかwって思いました。
ただ今までの書き方に慣れている関係で違和感バリバリですw
あと意味的にはaのi番目というのは変わらないんですが、
今回試した方だとiのa番目って思ってしまいそうで
直感的にもわかりづらそうです。
(直感的にわからないものは総じて使いづらい)
なので書くときは普段の書き方にすると思います。
今回はC++で試してみましたが他の言語で動くかは不明です。
気になった方は是非普段使っている言語で試してみてください。
配列名と添え字を逆転させるだけですから簡単です。
それでは今回はこの辺でノシ