728x90
포인터가 모두 배열은 아니다.
앞 절의 doubleInts()처럼 함수를 호출할 때
포인터 자리에 배열을 넣어도 된다고 해서 포인터가 배열과 같다고 생각하면 안된다.
포인터와 배열은 비슷한 점이 많아서 앞에서 본 예제처럼 서로 바꿔 써도 되지만 그렇다고 똑같지 않다.
포인터 자체는 의미가 없다.
임의의 메모리를 가리킬 수도 있고 객체나 배열을 가리킬 수도 있다.
언제든지 포인터에 배열 문법을 적용해도 되지만 실제로 포인터가 배열은 아니기 때문에 부적절한 경우도 있다.
int* ptr = new int;
ptr이란 포인터는 정상적인 포인터지만 배열은 아니다.
이 포인터가 가리키는 값을 배열 문법(ptr[0])으로 표현할 수는 있지만 바람직한 방법도 아니고 장점도 없다.
실수로 ptr[1]이라고 작성했다가 ptr[1]에 있는 메모리에 어떤 값이 있을지 모르니 프로그램에 오류가 발생할 수 있다.
'💻프로그래밍 내용 정리 > C++17' 카테고리의 다른 글
[C++ 7.3.2] 커스텀 메모리 관리 (0) | 2022.08.24 |
---|---|
[C++ 7.3.1] 포인터 연산 (0) | 2022.08.24 |
[C++ 7.2.1] 배열과 포인터 (0) | 2022.08.24 |
[C++ 7.1.4] 포인터 다루기 (1) | 2022.08.22 |
[C++ 7.1.3-2] 다차원 배열 (0) | 2022.08.22 |