Considering the following code:
int myArray [3] = {1, 2, 3};
std::cout << myArray << "\n"; // 0x22ff24
std::cout << &myArray << "\n"; // 0x22ff24
std::cout << *myArray << "\n"; // 1
std::cout << *(&myArray) << "\n"; // 0x22ff24
Why does the bottom statement not give 1, like the 3rd statement? If myArray is equal to &myArray, why is *myArray not equal to *(&myArray)?