If I write
int main()
{
    int a[100] = {1,2,3,4,};
    cout<<sizeof(a)/sizeof(a[0])<<endl; //a is a pointer to the first elem of array, 
                                        //isn't it
    return 0;
}
I get 400!
If I write
void func(int *a);
int main()
{
    int a[100] = {1,2,3,4,};
    func(a);
    return 0;
}
void func(int *a)
{
     cout<<sizeof(a)/sizeof(a[0])<<endl; //a is a pointer to the first elem of array
}
Then I get 1!
So why function does not know the array size?
 
     
     
     
     
     
     
     
    