Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- C언어
- 다이렉트X 튜토리얼
- CommandList
- 세팅
- vertex
- Direct Init
- Direct3D Init
- 동기화
- UE4
- Input Assembler
- 다중표본화
- DirectXTK
- 코딩
- C++
- RenderTargetView
- c
- 전처리문
- GPU
- DESC
- 게임수학
- DirectX12
- 프로그래밍
- Direct3D
- 다이렉트 초기화
- swapchain
- DirectX
- engine
- View
- CPU
- 다이렉트X
Archives
- Today
- Total
비타Cpp
포인터의 연산과 배열(array)(1) 본문
포인터는 메모리 상의 주소 값을 나타낸다. 이러한 포인터도 연산자를 통해 연산이 가능한데,
주소 값에 +,- 같은 주소 값의 덧셈 뺄셈이 가능하다.
int* pNum1;
int* pNum2;
pNum1 = new int(100);
pNum2 = pNum1 + 1;
*pNum2 = 200;
std::cout << pNum1 << " , " << pNum2 << std::endl;
std::cout << *pNum1 << " , " << *pNum2 << std::endl;
pNum1에 new int()를 이용하여 int형의 메모리를 잡아주고 안에 100이라는 값을 넣어준 다음,
pNum2에는 별도의 new 없이, pNum1의 포인터에 + 1을 해주어 메모리를 잡아준 다음 안에 200이라는 정수 값을 넣어줬다.
출력 창을 보면 pNum1의 주소 : 00819CE0 에서 + 1 이 아닌 + 4 가된 00819CE4가 잡힌 것을 볼 수가 있다.
포인터의 +,- 1이 그대로 연산되는게 아니라 해당 포인터의 할당 사이즈만큼이 곱해져서 연산된다.
int는 4 byte의 주소를 가진 타입이다.
이렇게 포인터의 연산을 이용하여 우리는 하나의 포인터를 이용해 연속된 메모리에 데이터를 넣을 수 있게 되는데,
이러한 기능을 사용하기 쉽게 만들어놓은 타입이 있다.
바로 배열(Array)이다.
배열은 대괄호"[ ]"를 이용하여 나타내고,
괄호 안에는 배열의 사이즈를 담을 수 있다. 배열은 매우 중요한 부분이니 다음 포스트에서 본격적으로 다뤄보자.
'C,C++' 카테고리의 다른 글
변수의 주소값과 포인터 자료형 (0) | 2020.05.17 |
---|---|
R-value와 L-value (0) | 2020.05.17 |
const 위치에 따른 의미들 (0) | 2020.05.16 |
조건문 switch (0) | 2020.04.22 |
조건문 if, if ~ else if ~ else 가위 바위 보 게임 (0) | 2020.04.21 |
Comments