#include <iostream> void farr( double darr[] ) { std::cout << "in farr() darr size: " << sizeof(darr) << '\n'; } int main() { double dummy[ 4 ] = { 0 }; std::cout << "in main() dummy size: " << sizeof(dummy) << '\n'; farr( dummy ); return 0; } /* Output: in main() dummy size: 32 in farr() darr size: 4 The size of an array is not available to the called function. No matter what is the array element type, function argument is simply a const address of the initial element of the array. Array differs from other types in such way that array is not (and cannot be) passed by value. */