문자열 형태로 포인터를 선언할 수 있다.
포인터 변수를 문장으로 선언하였을 경우를 알아보자.
위와같이 선언했다고 가정해보자.
문자열은 전부 배열형태로 이어지게 메모리에 생성이 되고 마지막에 '\0'이 붙게된다.
그리고 char*pstr은 ptrSting 의 p를 가리키게 된다.
배열과 다른점이 무엇일까?
배열은 다음값을 배열의 list[0], list[1]이런식으로 접근이 가능하다.
그러나, 포인터로 선언된 문장의 경우에는
이런식으로 접근을 할 수 없다. 접근하게되면,
이런식으로 나타나게 된다. 이유가 무엇일까?
pstr은 포인터이지 배열이 아니기 때문이다. 포인터는 위치좌표를 나타낼 뿐, 배열처럼 접근방법을 제공하지 않기 때문에 접근하기 위해서는 배열처럼 접근이 아닌, ++나 --같이 좌표를 직접 지정해주어야 한다.
2차원 배열의 포인터 주소 접근방법을 알아보자
위와 같이 표현할 수 있을것이다.
2차원 배열을 포인터로 저장하는 방법을 살펴보자.
다른방법으로도 출력해보자. 밑 예시를 살펴보자.
포인터를 상수화 시켜줄 수 도 있다. 상수화 하면 변경할 수 없는 데이터가 된다.
보이드 포인터 에 대해 알아보자.
보이드 포인터는 일반 포인터와 다르게 포인터의 경로에 어떠한 데이터를 지정할 것 인지 알 수 없을 때 사용한다.
즉, void * 변수 선언문은 포인터 가 가르키는 데이터의 종류에 상관없이 포인터를 지정할 수 있다는 말 이다.
사용할 때 에는 해당 포인터의 데이터 종류에 따라 선언방법이 달라진다. 사용방법의 간단한 예시를 살펴보자.
포인터에 (int*)은 int형의 포인터를 받기위해 int 포인터 로 형변환 하겠다는 의미 이다. 그 후 모든 데이터 문에 *를 선언하여 포인터에 들어있는 데이터를 호출하게 된다.
'서울게임아카데미 교육과정 6개월 C++ ~ DirectX2D' 카테고리의 다른 글
12일차 22.Pointer, 23.Structure (0) | 2023.03.23 |
---|---|
11일차 doublePointer. (0) | 2023.03.22 |
9일차 19.stream and buffer 20.Pointer 21.Pointer2 (0) | 2023.03.16 |
8일차. 16.Variable_scope 17.memory_structure (0) | 2023.03.15 |
7일차 15.재귀함수를 활용한 피보나치, 로또 생성기 만들기, 2차원 배열 만들기, 16.variable_scope (0) | 2023.03.10 |