私はsizeof(array)/sizeof(*array)
を印刷して番号3を受け取りましたが、私の配列に関数を渡すと、変数に格納されたときに2が出力され、そのために必要な時間が1つ少なくなります。なぜ私は予想より短い時間で反復するのですか?
void printAry(int ary[])
{
int size = sizeof(ary)/sizeof(ary[0]);
cout<<size;//size will print out 2! why?
for(int i = 0; i < size;i++)
{
cout<<ary[i];
}
}
int main() {
int ary[3] = {1,2,3};
cout<<sizeof(ary[0]);
return 0;
}
1回の繰り返しが予想よりも少ないのはなぜですか?
配列は関数内で_pointer_と解釈されているため、問題です。さらに悪いことに、配列全体ではなく、関数に 'ary'という単一のmember_を渡しています。 – ForceBru
'ary'は' printAry'のポインタであり、 'intの配列 'ではありません。 – BLUEPIXY