Getting size of a decayed or degraded int array

Question | Jul 31, 2019 | jmiller 

A function, foo, logs the size of its int* argument as:

void foo(int* ptr) {
  std::cout << sizeof(ptr) << "\n";
}

An int array is passed to foo, and also its size is logged after the call to foo:

int array[10];

foo(array); // pass array to foo
std::cout << sizeof(array) << "\n"; // log size of array

What will be the output of above if this code is run on a machine where sizeof(int) is 4 bytes and sizeof(void*) is 8 bytes: