Computer >> Máy Tính >  >> Lập trình >> lập trình C

Làm thế nào để tính tổng các phần tử mảng bằng cách sử dụng con trỏ trong ngôn ngữ C?

Con trỏ là một biến lưu trữ địa chỉ của biến khác.

Hãy xem xét tuyên bố sau -

int qty = 179;

Làm thế nào để tính tổng các phần tử mảng bằng cách sử dụng con trỏ trong ngôn ngữ C?

Khai báo một con trỏ

Cú pháp khai báo một con trỏ như sau -

int *p;

Ở đây, ‘p’ là một biến con trỏ giữ địa chỉ của biến khác.

Khởi tạo con trỏ

Toán tử địa chỉ (&) được sử dụng để khởi tạo một biến con trỏ.

Ví dụ:

int qty = 175;
int *p;
p= &qty;

Mảng con trỏ

Nó là tập hợp các địa chỉ (hoặc) tập hợp các con trỏ.

Tuyên bố

Sau đây là khai báo cho mảng con trỏ -

datatype *pointername [size];

Ví dụ:

int *p[5];

Nó đại diện cho một mảng con trỏ có thể chứa năm địa chỉ phần tử số nguyên.

Khởi tạo

‘&’ Được sử dụng để khởi tạo

Ví dụ:

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;

Đang truy cập

Toán tử hướng dẫn (*) được sử dụng để truy cập.

Ví dụ:

for (i=0, i<3; i++)
printf ("%d", *p[i]);

Chương trình

Sau đây là chương trình C để tính tổng các phần tử của mảng bằng cách sử dụng con trỏ -

//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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter size of array:
5
Enter elements in the List
12
13
14
15
16
Sum of all elements in an array is = 70