Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어에서 포인터를 사용하여 배열 요소의 합을 계산하는 방법은 무엇입니까?

<시간/>

포인터는 다른 변수의 주소를 저장하는 변수입니다.

다음 진술을 고려하십시오 -

int qty = 179;

C 언어에서 포인터를 사용하여 배열 요소의 합을 계산하는 방법은 무엇입니까?

포인터 선언

포인터 선언 구문은 다음과 같습니다 -

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