If I have an int array intArr[4] and get the address it’s pointing to like so
printf("%p\n", intArr,);
Then get the address of the array
printf(“%p\n”, &intArr);
Both statements return the same address
0xffffcc14
0xffffcc14
Then when it is de-referenced either through intArr[0] or *intArr it gives an integer value.
So I was wondering what is happening to make it seem as though an array is holding two things at the same time in the same memory location: a pointer value to itself and an element value?