포인터 공부
면접 대비시간 제한1초메모리 제한1024 MB
정수 N이 주어질 때 int 변수 a를 가리키는 N단계 포인터의 선언문을 한 줄에 하나씩 출력합니다.
- 난이도
쉬움10점 중 1점
- 유형
- 구현
- 정답자
- 아직 제출이 없습니다
문제
용모는 오늘 객체지향프로그래밍1 시간에 포인터를 배웠다. 포인터는 프로그래밍 언어에서 다른 변수, 또는 그 변수의 메모리 주소를 가리키는 변수다.
C/C++에서 포인터는 (자료형) *(변수명) 형태로 선언하고, 값은 &(이미 선언된 변수명)으로 지정한다. 선언에서 '*' 기호는 그 변수가 포인터임을 나타내고, '&' 기호는 변수의 메모리 주소값을 뜻한다.
예를 들어 int형 변수 a에 대한 포인터 ptr은 다음과 같이 선언할 수 있다. 이때 ptr은 a가 저장된 메모리 주소를 가리킨다.
int a;
int *ptr = &a;
포인터의 포인터를 선언하는 방식으로 다중 포인터도 만들 수 있다. int형 변수 a에 대해 4중 포인터를 만들려면 다음과 같이 코드를 작성해야 한다. 이중 포인터 ptr2는 ptr의 주소를, 삼중 포인터 ptr3는 ptr2의 주소를 가리킨다. 이런 식으로 특정 변수에 대한 다중 포인터는 원하는 만큼 계속 선언할 수 있다.
int a;
int *ptr = &a;
int **ptr2 = &ptr;
int ***ptr3 = &ptr2;
int ****ptr4 = &ptr3;
용모는 int형 변수 a에 대해 N중 포인터를 선언하는 코드를 작성하는 과제를 받았다. 각 포인터 변수의 이름은 "ptr", "ptr2", ..., "ptrN" (N은 수)이 되어야 하고, 코드 형식은 위 예시와 같아야 한다.
그러나 공부가 싫고 게임을 좋아하는 용모는 코드를 치는 시간이 아까웠다. 그래서 과제 코드를 대신 출력해 주는 프로그램을 작성한 뒤 게임을 하러 가기로 했다. 여러분도 이 프로그램을 직접 작성해 보자.
입력
정수 N이 주어진다.
출력
용모가 과제로 작성해야 하는 변수 선언문들을 N + 1개의 줄에 걸쳐 출력한다.
제한
1 ≤ N ≤ 100