配列の添字の型は何? int ? size_t?
C/C++の非常に素朴な疑問です。
a[ i ] の i の型は何か?
です。
古き良きK&R時代であればintでしょうが、いつからか、sizeof演算子の戻り値もsize_tなので
size_tではないのか?という疑問がわきます。
とはいえ、(ちょっと強引なコードですが)
const char *a = "abcdefg";
a++;
printf("%c", a[-1]);
もありなので、-1を指定できるということはint?
C++コンテナのoperator [](...)
は添字の型が定義されているから
それ(たいてい size_type)に従えばよいのですが、
単純な配列型(char []
など)の添字の型はなんでしょうか?