공부하기/C언어

7-2. 포인터 연산

bsarise 2023. 8. 6. 23:48
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