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