中級 › 配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由 › パターン4
配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由
配列そのもの(nums)と、先頭要素のアドレス(&nums[0])を混同してsizeofに渡してしまうバグです。
1 #include <iostream> 2 int main() { 3 int scores[4] = {1, 2, 3, 4}; 4 std::cout << sizeof(__________) << std::endl; ^ 5 return 0; 6 }
出力: 8期待: 16(int4個分)
空欄を埋めてコンパイル・実行を通す
&scores[0]は先頭要素へのポインタという別の型になり、sizeofはポインタ自体のサイズを返します。
次の問題