0

ここにいくつかのコードがあります:

int static_array[10];
cout<<"sizeof(static_array): " <<sizeof(static_array)<<endl;

int *ptr = static_array;
cout<<"sizeof(ptr): " <<sizeof(ptr)<<endl;

出力:

sizeof(static_array): 40
sizeof(ptr): 8

私が理解している限り、C++ 配列はポインターであり、sizeof(ptr) 関数はポインターのサイズを返します。static_array がポインターである場合 (ptr に割り当てたので、ポインターである必要があります)、そのサイズが実際には 8 バイトではなく 40 バイト (10 個の整数) である理由がわかりません。

4

0 に答える 0