การใช้ Pointer เข้าถึงอาร์เรย์และหาผลรวม
Pointer เก็บที่อยู่ของตัวแปร ใช้ malloc จองหน่วยความจำสำหรับอาร์เรย์ แล้วเข้าถึงด้วย *(ptr + i)
การประกาศและใช้งาน Pointer
int *ptr;
ptr = (int *) malloc(n * sizeof(int));
// อ่านค่า
scanf("%d", ptr + i);
// เข้าถึงค่า
*(ptr + i)
โค้ด C คำนวณผลรวม
#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;
}
ตัวอย่าง Output
Enter size of array: 5
Enter elements in the List
12 13 14 15 16
Sum of all elements in an array is = 70