Consider the following code:
#include int main(void) { int a[10]; printf(\"%d\",(int)sizeof(a)); //prints 10*sizeof(int) (40 on
Nope, in the second case the argument is interpreted as an int* pointer which happens to also have size equal to 4 on your machine.
int*