Embedded Programming/C/C++
포인터 연산
중동콜링
2013. 4. 2. 17:00
* 포인터와 관련된 연산의 종류
연산 |
예 |
설명 |
할당 |
int *p = &a; |
포인터에 주소값을 할당하는 것으로, 주소연산자 또는 포인터 상수(배열 이름)으로부터 나온 주소가 되어야 한다. |
간접 |
*p = 6; |
간접연산자(*)은 포인터로 지정된 위치에 값을 조작가능 |
주소 |
int x; int *px; int **ppx;
px = &x; ppx = &px; |
포인터 변수명에 주소연산자(&)를 붙이면 포인터 변수 자체의 주소가 된다. 주로 다차원 배열에 이를 이용할 수 있다. |
증가 |
int *p; p++;(4byte 증가) p += 4;(16byte 증가) |
포인터의 자료형 크기만큼 가리키는 주소값을 증가시킬 수 있다. (int *: 4byte, short *: 2byte, char *: 1byte…) |
감소 |
int *p; p--;(4byte 감소) p –= 2;(8byte 감소) |
포인터의 자료형만큼 가리키는 주소값을 감소시킬 수 있다. |
차이 |
ptr1 – ptr2
|
같은 배열을 가리키는 포인터끼리 얼마나 떨어져있는지알 수 있다. |
비교 |
ptr1 < ptr2
|
같은 배열을 가리키는 포인터끼리 비교연산(<, >, <=, >=)이 가능하다. |
< 포인터 증가 연산 예제 >
#include <stdio.h> |