重複の可能性:
配列のサイズの計算
C プログラミング言語での配列のサイズ?
なぜ機能しsizeof(arr)/(double)sizeof(arr[0])
、機能しsizeof(arr+0)/(double)sizeof(arr[0])
ないのですか?
sizeof(arr)/(double)sizeof(arr[0])
また、arr が関数に渡されたときにも機能しないのはなぜですか? 完全なコード例は次のとおりです。
#include <iostream>
using namespace std;
int givesize(int arr[])
{
cout<<sizeof(arr)/(double)sizeof(arr[0])<<"\n";
}
int main()
{
int arr[] = {1,2,3,4,5};
cout<<sizeof(arr)/(double)sizeof(arr[0])<<"\n";
cout<<sizeof(arr+2)/(double)sizeof(arr[0])<<"\n";
givesize(arr);
return 0;
}
出力 5 1 1