我知道這是一個很多人以前問過的話題,但我仍然對將一個數組作爲參數傳遞給一個函數感到困惑。我想知道 這段代碼在這裏發生了什麼,以及爲什麼當我嘗試獲取數組sizeof
時它工作正常。爲什麼將int(* p)[4]作爲參數傳遞來獲取函數內數組的大小?
#include <iostream>
void function(int* parray, int(*array)[4]) //-> i dont get it
{
int size = sizeof(*array)/sizeof(*parray);
std::cout << &parray << std::endl;
std::cout << *parray << std::endl;
std::cout << *array << std::endl;
}
int main(){
int array[4]= {2,3,5,4};
function(array,&array);
return 0;
}
因爲C++語言表示它。你問這是爲什麼嗎? – juanchopanza
*爲什麼它能正常工作,當我嘗試獲取數組的大小時*你在哪裏做? – Borgleader
你*不是*'將它作爲參數傳遞'。你*聲明*它爲*參數。* – EJP