「The C Standard says that array indexes are (signed) integers. The reason behind that is that pointers and arrays are close in C. For example, tab[index] is strictly equivalent to *(tab + index). You can use pointer arithmetic with negative values, hence an array index can be negative」 とあるので、C 言語での配列添え字は符号付き整数 ですね。 しかし、C++ では、size_t とされ、符合なし整数 のようですが、矛盾しませんか?