포인터 연산 예제

우리는 이미 우리가 앰퍼샌드 기호를 사용하여 변수의 주소를 표시 할 수있는 첫 번째 예에서 보았다. 변수 num의 주소에 액세스하기 위해 &num을 사용했습니다. 연산자는 „주소” 연산자라고도 합니다. 퀴즈 – 포인터 기본 사항 , 고급 포인터 참조 : https://www.ntu.edu.sg/home/ehchua/programming/cpp/cp4_PointerReference.html 제한된 산술 연산 세트는 포인터에서 수행 할 수 있습니다 : * 연산자를 사용하여 값에 액세스 할 수 있습니다. 포인터를 통해 변수의. 예: C의 포인터에 대해 논의하기 전에 간단한 예제를 통해 변수의 주소가 무엇을 의미하는지 이해할 수 있습니다. 포인터에 상수의 추가 또는 빼기는 허용됩니다. 결과는 주어진 상수에 의해 메모리 위치의 증가 또는 감소인 유일한 차이점과 증분 또는 감소 연산자와 유사합니다. 또한 값을 저장하는 변수의 유형에 따라 증분되거나 감소되는 것을 잊지 말아야 합니다. 다음 프로그램은 포인터에 상수 의 추가 및 빼기의 예를 보여줍니다: 참고: – 출력은 메모리 위치가 각 실행마다 다를 수 있기 때문에 프로그램이 실행될 때마다 다를 수 있습니다. 이 프로그램에서는 int 형식의 변수 num이 있습니다.

num 의 값은 10이며이 값은 메모리어딘가에 저장되어야합니다. 메모리 공간은 해당 변수의 값을 보유 하는 각 변수에 대 한 할당, 이 메모리 공간에 는 주소가 있습니다. 예를 들어 우리는 집에 살고 우리 집에는 주소가있어 다른 사람들이 우리 집을 찾는 데 도움이됩니다. 변수의 값이 메모리 주소에 저장되는 것과 동일한 방식으로 C 프로그램이 필요할 때 해당 값을 찾는 데 도움이 됩니다. 포인터는 다른 변수의 메모리 주소를 포함하는 변수입니다. 메모리의 주소는 숫자 값이므로 포인터 값에 대해 산술 연산을 수행할 수 있습니다. 포인터에서 수행할 수 있는 다른 작업은 다음과 같습니다. 포인터 앞에 배치된 * 연산자는 해당 포인터가 가리키는 값에 액세스합니다. 즉, IP가 포인터인 경우 표현식 *ip는 IP로 가리키는 변수 또는 위치에 있는 것이 무엇이든 제공합니다. 예를 들어, 포인터는 주소의 상징적 표현과 같은 것을 쓸 수 있습니다. 이를 통해 프로그램은 참조별 호출을 시뮬레이션하고 동적 데이터 구조를 만들고 조작할 수 있습니다.

C/C++의 일반 선언형식은 위의 포인터 선언의 몇 가지 예입니다. 정수 변수의 주소를 저장하는 포인터가 필요한 경우 포인터의 데이터 형식이 int여야 합니다. 는 피연산자의 메모리 주소를 반환하는 unary 연산자입니다. 예를 들어 var이 정수 변수인 경우 & var은 해당 주소입니다. 이 연산자는 다른 비연산자와 동일한 우선 순위및 오른쪽에서 왼쪽 연관성을 가집니다. ==, 와 같은 관계형 연산자(예:=)를 사용하여 포인터를 비교할 수 있습니다. p1과 p2가 동일한 배열의 요소와 같이 서로 관련된 변수를 가리키는 경우 p1과 p2를 의미 있게 비교할 수 있습니다. 이제 a가 저장되는 메모리 위치가 63420이라고 가정해 보겠습니다. 따라서 x에는 63420.또한 값이 포함되어 있으므로 x는 4바이트 크기의 정수 변수의 주소를 저장합니다.

x 값이 증가하면 63421을 저장하지 않고 정수 변수의 다음 메모리 위치인 63434를 저장합니다. 따라서 포인터는 저장하는 값의 데이터 형식에 따라 증가됩니다.

포인터 연산 예제