728x90
C 언어의 포인터 연산은 메모리 주소와 관련된 여러 작업을 수행하는 데 사용됩니다. 주로 포인터의 증감, 포인터 간의 연산 및 포인터 간의 비교와 관련된 연산들이 있습니다.
1. 포인터의 증감
포인터에 정수 값을 더하면 포인터는 해당 데이터 타입의 크기만큼 주소를 증가시킵니다.

정수형 포인터에 1을 더하면, 주소는 4 바이트(플랫폼에 따라 다를 수 있음) 증가합니다. 이는 int의 크기와 동일합니다.
2. 포인터 간의 연산
두 포인터의 차이를 계산할 수 있습니다. 이 차이는 두 주소 사이의 거리를 해당 데이터 타입의 크기로 나눈 값입니다.

3. 포인터 간의 비교
포인터 간의 비교는 주로 두 포인터가 동일한 주소를 가리키는지, 그리고 어느 포인터가 더 높은 주소를 가리키는지 확인하기 위해 사용됩니다.

4. 포인터와 정수의 연산
포인터에 정수를 더하거나 뺄 수 있습니다. 결과는 해당 데이터 타입의 크기에 정수를 곱한 값만큼 주소가 증가하거나 감소합니다.

주의점:
- 포인터 연산은 해당 포인터의 데이터 타입에 따라 다르게 동작합니다.
- 포인터 연산을 통해 유효하지 않은 메모리 주소를 참조하면 프로그램에서 오류가 발생할 수 있습니다. 예를 들어, 배열의 범위를 벗어나는 주소를 참조하는 경우입니다.
- 두 다른 객체 사이의 주소를 비교하거나 연산하는 것은 정의되지 않은 동작을 초래할 수 있습니다.
포인터 연산은 C 프로그래밍에서 매우 강력한 도구로 사용될 수 있지만, 사용 시 주의가 필요합니다. 잘못된 포인터 연산은 예기치 않은 동작이나 버그를 발생시킬 수 있기 때문입니다.
'공부하기 > C언어' 카테고리의 다른 글
7-4. 언어 함수와 포인터의 관계 (0) | 2023.08.06 |
---|---|
7-3. 배열과 포인터의 관계 (0) | 2023.08.06 |
7-1. 포인터의 기본 개념 (0) | 2023.08.06 |
6-4. 재귀 함수 (0) | 2023.08.06 |
6-3 지역 변수와 전역 변수 (0) | 2023.08.06 |