Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ผลรวมของอาร์เรย์ด้วย Pointer Arithmetic ใน C++

นี่คือโปรแกรม C++ สำหรับหาผลรวมขององค์ประกอบอาร์เรย์โดยใช้ pointer arithmetic

อัลกอริธึม

  1. เริ่มต้นค่าอาร์เรย์จากอินพุตผู้ใช้
  2. กำหนด s = 0
  3. ลูป i = 0 ถึง n-1: s = s + *(ptr + i)
  4. พิมพ์ผลรวมในตัวแปร s

โค้ดตัวอย่าง

#include <iostream>
using namespace std;

int main() {
    int a[7], i, s = 0;
    int *ptr;
    cout << "Enter the Numbers: ";
    for (i = 0; i < 7; i++) {
        cin >> a[i];
    }
    ptr = a; // ptr ชี้ไปที่ a[0]
    for (i = 0; i < 7; i++) {
        s = s + *(ptr + i); // *(ptr + i) เทียบเท่า ptr[i] หรือ a[i]
    }
    cout << "\nSum of Elements of Array: " << s;
    return 0;
}

ผลลัพธ์

Enter the Numbers: 1 2 3 4 5 6 7
Sum of Elements of Array: 28

คำอธิบาย Pointer Arithmetic:

  • ptr ชี้ไปที่ a[0]
  • ptr + i ชี้ไปที่ a[i] (เลื่อน i * sizeof(int) ไบต์)
  • *(ptr + i) dereference เพื่อได้ค่า a[i]
  • เทียบเท่ากับ ptr[i] หรือ a[i]

วิธีทันสมัย (แนะนำ): ใช้ std::accumulate (ดูบทความ 1004082795) หรือ range-based for loop: for (int x : a) sum += x; อ่านง่ายกว่าและปลอดภัยกว่า