포인터 연산 예제

C의 포인터에 대해 설명하기 전에 간단한 예제를 통해 변수의 주소가 무엇을 의미하는지 이해할 수 있습니다. c의 포인터는 숫자 값인 주소입니다. 따라서 숫자 값에서와 마찬가지로 포인터에서 산술 연산을 수행할 수 있습니다. 포인터에 사용할 수있는 네 개의 산술 연산자가 있습니다 : ++, –, +, 및 – 1) 포인터 – 포인터에 대한 포인터 – 포인터는 다른 포인터를 가리킬 수 있습니다 (즉, 다른 포인터의 주소를 저장할 수 있음), 이러한 포인터는 포인터에 대한 이중 포인터 또는 포인터라고합니다. 다음 프로그램은 이전 예제를 수정 – 그것은 가리키는 주소가 배열의 마지막 요소의 주소보다 작거나 동일하다만큼 변수 포인터를 증분하여 하나 ,이는 &var[MAX – 1] – 퀴즈 – 포인터 기본 , 고급 포인터 참조: https://www.ntu.edu.sg/home/ehchua/programming/cpp/cp4_PointerReference.html 해당 형식의 다음 메모리 위치를 가리키는 경우 모든 포인터 변수입니다. 예를 들어 ==, 와 같은 관계형 연산자(예: 포인터)를 사용하여 포인터를 비교할 수 있습니다. p1과 p2가 동일한 배열의 요소와 같이 서로 관련된 변수를 가리키는 경우 p1과 p2를 의미 있게 비교할 수 있습니다. 우리는 이미 우리가 앰퍼샌드 기호를 사용하여 변수의 주소를 표시 할 수있는 첫 번째 예에서 보았다. 변수 num의 주소에 액세스하기 위해 &num을 사용했습니다. 연산자는 “주소” 연산자라고도 합니다. 위의 몇 가지 포인터 선언의 예입니다. 정수 변수의 주소를 저장하는 포인터가 필요한 경우 포인터의 데이터 형식이 int여야 합니다. 는 피연산자의 메모리 주소를 반환하는 unary 연산자입니다.

예를 들어 var이 정수 변수인 경우 & var은 해당 주소입니다. 이 연산자는 다른 비연산자와 동일한 우선 순위및 오른쪽에서 왼쪽 연관성을 가집니다. 포인터 산술을 이해하려면 ptr이 주소 1000을 가리키는 정수 포인터임을 생각해 봅시다. 32 비트 정수를 가정, 우리가 포인터에 다음과 같은 산술 작업을 수행 할 수 있습니다 – 포인터는 다른 변수의 메모리 주소를 포함하는 변수입니다. 메모리의 주소는 숫자 값이므로 포인터 값에 대해 산술 연산을 수행할 수 있습니다. 포인터에서 수행할 수 있는 다른 작업은 다음과 같습니다. 따라서 x에는 63420.또한 값이 포함되어 있으므로 x는 4바이트 크기의 정수 변수의 주소를 저장합니다. x 값이 증가하면 63421을 저장하지 않고 정수 변수의 다음 메모리 위치인 63434를 저장합니다. 따라서 포인터는 저장하는 값의 데이터 형식에 따라 증가됩니다. 포인터 변수의 값을 감소시키는 경우도 마찬가지입니다.

해당 형식의 이전 메모리 위치를 가리킵니다.