我已打印出來我sizeof(array)/sizeof(*array)
和接收數3,但是當我通過我的陣列到我的功能時,爲此迭代一個更短的時間比它應該存儲到變量中,並打印出2。爲什麼我的迭代次數少於預期?
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;
}
爲什麼它的迭代次數少於預期?
陣列被解釋爲函數內的_pointer_,因此問題。更糟糕的是,你將_a的單個成員__傳遞給函數,而不是整個數組。 – ForceBru
'ary'是'printAry'中的指針,而不是'int的數組'。 – BLUEPIXY