포인터는 값이 다른 변수의 주소, 즉 메모리 위치의 직접 주소인 변수입니다. 모든 변수 또는 상수와 마찬가지로 포인터를 사용하여 변수 주소를 저장하기 전에 포인터를 선언해야 합니다.
다음 진술을 고려하십시오 -
int qty = 179;
메모리에 있는 변수의 표현은 다음과 같습니다 -
다음과 같이 포인터를 선언할 수 있습니다 -
Int *p;
'p'는 다른 정수 변수의 주소를 담고 있는 포인터 변수라는 뜻입니다.
주소 연산자(&)는 포인터 변수를 초기화하는 데 사용됩니다.
예를 들어 -
int qty = 175; int *p; p= &qty;
변수의 값에 접근하기 위해 간접연산자(*)를 사용한다.
예를 들어 -
'*'는 주소의 값으로 취급될 수 있습니다.
두 문장은 다음 문장과 동일합니다 -
p = &qty; n = *p; n =qty
다양한 포인터 작업
C 언어의 포인터 연산은 아래에 설명되어 있습니다 -
-
과제 − &(주소 연산자)를 사용하여 포인터에 주소를 할당할 수 있습니다.
-
가치 발견 − * 연산자가 가리키는 위치에 저장된 값을 제공하는 역참조일 뿐입니다.
-
포인터 주소 가져오기 − 다른 변수와 마찬가지로 포인터 변수에는 주소와 값이 있습니다. 주소 연산자를 사용하면 포인터 자체가 저장되어 있을 때 찾을 수 있습니다.
-
포인터에 정수 추가 − + 연산자를 사용하여 포인터에 정수를 추가하거나 정수에 포인터를 추가할 수 있습니다. 여기서 두 경우 모두 int에 가리키는 유형의 바이트 수를 곱하고 그 결과를 원래 주소에 추가합니다.
-
포인터 증가 - 배열의 다음 요소로 이동하도록 하는 배열 요소입니다.
-
포인터에서 int 빼기 − 포인터에서 정수를 빼기 위해 –(빼기) 연산자를 사용하고 있습니다. 그 정수에 type이 가리키는 바이트 수를 곱하고 그 결과를 원래 주소에서 뺍니다.
-
포인터 감소 − 감소 포인터, 이전 위치 대신 이전 위치를 가리키며 감소 연산자에 대해 전치 및 후위 형식을 모두 사용할 수 있습니다.
-
빼기 − 두 포인터의 차이점을 찾을 수 있습니다. 일반적으로 요소가 얼마나 떨어져 있는지 알아내곤 했습니다.
-
비교 − 두 포인터의 값을 비교하기 위해 관계 연산자를 사용할 것입니다.
예시
아래는 C 언어에서 포인터 연산의 기능을 보여주는 프로그램입니다 -
#include<stdio.h> main ( ){ int x,y; //Declaring a pointer int *p; clrscr ( ); x= 10; //Assigning value to a pointer p = &x; y= *p; printf ("Value of x = %d", x); printf ("x is stored at address %u", &x); printf ("Value of x using pointer = %d", *p); printf ("address of x using pointer = %u", p); printf (“value of x in y = %d", y); *p = 25; printf ("now x = %d", x) getch ( ); }
출력
위에서 언급한 프로그램을 실행하면 다음과 같은 결과가 나옵니다. -
Value of x = 10 x is stored at address = 5000 Address of x using pointer = 10 Address of x using pointer = 5000 Value of x in y = 10 Now x = 25