Table of Contents
Pointer arithmetic은 C 및 C++ 프로그래밍의 기본 개념입니다. 그것은 포인트에 작업을 수행 할 수 있습니다. 정확한 계산 포인터 주소는 버그와 정의 된 행동을 방지하기 위해 필수적입니다.
포인터 아리아틱의 기본
C와 C++에서는, 포인터는 메모리 주소를 저장합니다. 포인터에 대한 리듬을 수행 할 때, 컴파일러는 데이터 유형의 크기에 대한 자동 계정으로 포인터 포인트를 입력합니다. 예를 들어, 1을 int 포인터에 추가하면 int의 크기로 주소가 증가합니다.
Pointer 계산의 일반적인 실수
1개의 일반적인 실수는 1 바이트로 1개 점퍼를 항상 증가시키는 것과 같이 assuming 입니다. 현실에서는, 그것은 자료 유형의 크기에 의해 증가합니다. 또 다른 실수는 2개의 점퍼 사이 다름을, incorrect 배열 색인을 붙이는 지도할 수 있는 miscalculating 입니다.
정확한 계산 방법
정확한 계산 포인터 주소, 데이터 유형 크기를 고려하고 점퍼를 주의 깊게 사용합니다. 두 포인터 사이의 거리를 계산하면 주소와 데이터 유형의 크기로 나눕니다.
2 포인터의 요소 수 = (pointer2 - 포인터1) / sizeof(*pointer1)
이 계산은 두 개의 포인터 사이의 요소의 수를 제공, 바이트 차이는 아닙니다. 항상 같은 배열 또는 메모리 블록 내에서 포인터 포인트를 보장하여 정의되지 않는 동작을 방지합니다.