#include<iostream>
using namespace std;
int Getsize(int data[],int n) {
int *data_ptr = data;
for(int i=0;i<n;i++)
{
cout << *data_ptr << endl;
data_ptr++;
}
return sizeof(data);
}
int main() {
int data1[] = { 1,2,3,4,5 };
int *data2 = data1;
cout << sizeof(data1) << endl;
cout << sizeof(data2) << endl;
cout << Getsize(data1,sizeof(data1)/sizeof(int)) << endl;
system("pause");
return 0;
}
輸出:
20
8
1
2
3
4
5
8
data1是一個數組,sizeof(data1)是數組的大小
data2是指針,64位系統指針大小為8B
在C/C++中,當數組作為函數參數傳遞時,數組就自動退化為同類型的指針。
是以,int Getsize(int data[],int n)中的參數data與data_ptr都是指針類型。大小認為8B