* 포인터와 관련된 연산의 종류
연산 |
예 |
설명 |
할당 |
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> |
'Embedded Programming > C/C++' 카테고리의 다른 글
volatile 변수의 쓰임 (0) | 2013.04.11 |
---|---|
배열을 함수에 전달하기 (배열을 인수로 전달하기) (0) | 2013.04.02 |
배열과 포인터 (0) | 2013.04.01 |
다수의 파일로 나누어 작업하기(header file 만들기) (1) | 2013.03.26 |
C언어 함수(function)의 기초 (함수의 구성, 정의, 호출) (1) | 2013.03.26 |