문제 6 · 배열 이름과 &배열
문제 6 [2점]
아래 코드를 읽고, 출력을 예상하여 작성하세요.
cpp
#include <iostream>
using namespace std;
int main() {
int myList[3] = {1, 2, 3}; // 주소 00FF13
cout << &myList;
}풀이 및 해설
배열은 연속된 메모리에 저장되고, 배열의 주소는 첫 원소의 첫 바이트 주소와 같습니다. 문제에서 배열이 시작하는 번지를 00FF13으로 주었습니다.
myList(배열 이름) → 첫 원소로의 포인터, 값은00FF13&myList[0]→ 첫 원소의 주소, 값은00FF13&myList→ 배열 전체를 가리키는 포인터(int(*)[3])이지만, 가리키는 시작 번지는 역시00FF13
셋의 자료형은 다르지만 가리키는 주소값은 모두 같습니다. 따라서 cout << &myList는 배열이 시작하는 주소를 출력합니다.
(실제 실행 시 번지는 실행 환경마다 달라지지만, 문제의 가정에 따르면 00FF13입니다.)