포인터는 다른 변수의 주소를 저장하는 변수입니다.
기능
- 포인터는 메모리 공간을 절약합니다.
- 메모리 위치에 직접 접근하기 때문에 포인터의 실행 시간이 더 빠릅니다.
- 포인터의 도움으로 메모리에 효율적으로 액세스합니다. 즉, 메모리가 동적으로 할당 및 해제됩니다.
- 포인터는 데이터 구조와 함께 사용됩니다.
포인터 선언 및 초기화
다음 진술을 고려하십시오 -
int qty = 179;
메모리에서 변수는 다음과 같이 나타낼 수 있습니다. -
포인터 선언
이것은 'p'가 포인터 변수라는 것을 의미하며, 아래와 같이 다른 정수 변수의 주소를 담고 있습니다 -
Int *p;
포인터 초기화
주소 연산자(&)는 포인터 변수를 초기화하는 데 사용됩니다.
예를 들어 - int qty =175;
정수 *p;
p=&qty;
포인터 배열
주소 모음(또는) 포인터 모음입니다.
선언
다음은 포인터 배열에 대한 선언입니다 -
datatype *pointername [size];
예를 들어,
int *p[5];
5개의 정수 요소 주소를 보유할 수 있는 포인터 배열을 나타냅니다.
초기화
'&'는 초기화에 사용됩니다.
예를 들어,
int a[3] = {10,20,30}; int *p[3], i; for (i=0; i<3; i++) (or) for (i=0; i<3,i++) p[i] = &a[i]; p[i] = a+i;
액세스
접근시 간접연산자(*)를 사용합니다.
예를 들어,
for (i=0, i<3; i++) printf ("%d", *p[i]);
예시 프로그램
다음은 포인터 배열을 위한 프로그램입니다 -
#include<stdio.h> main ( ){ int a[3] = {10,20,30}; int *p[3],i; for (i=0; i<3; i++) p[i] = &a[i]; printf ("elements of the array are \n"); for (i=0; i<3; i++) printf ("%d \t", *p[i]); }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
elements at the array are : 10 20 30
예시 2
다음은 문자열에 대한 포인터 배열을 위한 프로그램입니다 -
#include <stdio.h> #include <stdlib.h> int main(void){ char *a[5] = {"one", "two", "three", "four", "five"}; int i; printf ( "the strings are at locations:\n"); for (i=0; i<5; i++) printf ("%d\n", a[i]); return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
The strings are at locations: 4210688 4210692 4210696 4210702 4210707