#include
int main(void){
char array[20];
printf( \"\\nSize of array is %d\\n\", sizeof(array) ); //outputs 20
printf(\"\\nSize of &
I think that "array" itself is constant pointer, you can not address it to different location. It is true that we can write: array is the same as &array[0], which is derived from &*(array+0) and it is equal to &*(array). We know that &* is eliminated so we are back to "array" again. So "array" is the same as "&*(array+0)" The terms should be the same in some circumstances, but it is not the same for the sizeof operator.