1. 포인터 연산
포인터 연산은 주소에 더하거나 빼는 연산을 말한다. 포인터 연산을 할 때 덧셈, 뺄셈 연산자를 모두 사용 가능하다.
int ar[5] = {2, 3, 5, 7, -1}, i=4;
int *p = &ar[1];
printf("%p %d\n", p, *p);
printf("%p %d\n", --p, *p);
printf("%p %d\n", p+i, *(p+i));
실행 결과
0018F9A8 3
0018F9A4 2
0018F9B4 -1
포인터 연산에 ++, -- 등 덧셈, 뺄셈 연산자를 사용할 수 있다.
2. 주소 비교
포인터의 주소는 '==, !=, <, >, <=, >=' 와 같은 비교 연산자를 사용하여 비교할 수 있다. 사실 포인터 연산은 일반 변수와 연결해서 사용하는 것보다 배열에 연결해서 사용할 때 의미가 있다.
int ar[5] = {2, 3, 5, 7, -2}, *p1, *p2;
p1 = &ar[1];
p2 = &ar[4];
printf("%d %d\n", p1 < p2, *p1 < *p2);
실행 결과
1 0
※ 포인터 연산할 때 주의사항 ※
1. 포인터 연산은 덧셈과 뺄셈만 가능하고, 곱셈과 나눗셈은 불가능하다.
2. 포인터 연산에서는 정수만 가능하다. 실수 연산은 물론 주소끼리 연산하는 것도 불가능하다.
'프로그래밍 > C 언어' 카테고리의 다른 글
문자와 문자열 ( 2. 문자열의 배열 및 처리 함수) (0) | 2020.03.13 |
---|---|
문자와 문자열 ( 1. 문자열이란? ) (0) | 2020.03.09 |
포인터 ( 4. 함수와 포인터 ) (0) | 2020.03.02 |
포인터 ( 2. 배열과 포인터 ) (0) | 2020.02.18 |
포인터 ( 1. 포인터란? ) (0) | 2020.02.17 |