포인터는 다른 변수의 주소를 저장하는 변수입니다.
다음 진술을 고려하십시오 -
int qty = 179;
포인터 선언
포인터 선언 구문은 다음과 같습니다 -
int *p;
여기서 'p'는 다른 변수의 주소를 담는 포인터 변수입니다.
포인터 초기화
주소 연산자(&)는 포인터 변수를 초기화하는 데 사용됩니다.
예를 들어,
int qty = 175; int *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]);
프로그램
다음은 포인터를 사용하여 배열 요소의 합을 계산하는 C 프로그램입니다 -
//sum of array elements using pointers #include <stdio.h> #include <malloc.h> void main(){ int i, n, sum = 0; int *ptr; printf("Enter size of array : \n"); scanf("%d", &n); ptr = (int *) malloc(n * sizeof(int)); printf("Enter elements in the List \n"); for (i = 0; i < n; i++){ scanf("%d", ptr + i); } //calculate sum of elements for (i = 0; i < n; i++){ sum = sum + *(ptr + i); } printf("Sum of all elements in an array is = %d\n", sum); return 0; }
출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
Enter size of array: 5 Enter elements in the List 12 13 14 15 16 Sum of all elements in an array is = 70