はかせのラボ

私の頭の中を書いていく雑記ブログです

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上げたんでそちらをどうぞ

私はこの書き方を今日初めて知りました。
理屈がどうとかっていうより省略記法の1種みたいです。
要は

a = a + 1;
a += 1;

これと同じイメージだと思います。

あとがき

今日はTwitterで見たことない書き方があったので試してみました。

実際書いてみて動いてマジかwって思いました。
ただ今までの書き方に慣れている関係で違和感バリバリですw

あと意味的にはaのi番目というのは変わらないんですが、
今回試した方だとiのa番目って思ってしまいそうで
直感的にもわかりづらそうです。
(直感的にわからないものは総じて使いづらい)
なので書くときは普段の書き方にすると思います。

今回はC++で試してみましたが他の言語で動くかは不明です。
気になった方は是非普段使っている言語で試してみてください。
配列名と添え字を逆転させるだけですから簡単です。

それでは今回はこの辺でノシ