• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

6.19 질문

21.01.19 15:23 작성 조회수 102

1

강의 6분 50초 부분 int**rows=new int*[row]{r1,r2,r3}; 이부분이 이해가 가질 않습니다. new int*[row]{r1,r2,r3} 에서 * 이건 de-referencing 을 뜻하는건가요 아님 포인터를 뜻하는건가요 또한 de-referencing 이라면 도대체 무엇을 가리키는건가요?

답변 1

답변을 작성해보세요.

5

안소님의 프로필

안소

2021.01.19

안녕하세요.

int**rows=new int*[row]{r1,r2,r3}; 

int* 타입(int를 가리키는 포인터)의 원소들을 가지는 row 길이의 동적 배열을 생성하여 rows 에게 주소를 대입하는 표현식입니다. 디레퍼런싱이 아닌 원소가 int* 타입인 배열을 생성한다는 의미입니다.

new int[col] {1, 2, 3, 4, 5}; 이 표현은 int 원소들이 모인 동적 배열 {1, 2, 3, 4, 5}을 생성하겠다는 뜻이죠.

이와 마찬가지로 new int*[row]{r1,r2,r3}; 이 표현도 int* 원소들이 모인, 즉 int 포인터들이 모인 동적 배열 {r1, r2, r3} 을 생성하겠다는 의미입니다.  r1, r2, r3 은 모두 int* 타입인 int 포인터들이였죠! 원소들이 포인터인 것입니다.