Behaviour of Sizeof em C

Aprendi que quando passamos o nome da matriz para sizeof, o nome da matriz não decai para o ponteiro para o endereço base. O código abaixo verifica esse fato, dando a resposta 10.

#include <stdio.h> 

int main(){  
    int arr[10];  
    printf("Size of array is %d" , sizeof(arr)/sizeof(int));  
    return 0;  
}

No entanto, quando executo o código abaixo, a resposta é 1. Independentemente de uma dimensão ser escrita em protótipo ou não, a resposta é 1. Por que é assi

#include <stdio.h>

void dimension(int arr[]){  
    printf("Sizof array is %d" , sizeof(arr)/sizeof(int));  
}


int main(){  
    int arr[10];  
    dimension(arr);  
    return 0;  
}  

questionAnswers(8)

yourAnswerToTheQuestion