কম্পিউটার টিউটোরিয়াল

সি/সি++-তে অ্যারে ইনডেক্স কেন শূন্য (Zero) থেকে শুরু হয়?


একটি অ্যারে arr[i] ইন্টারপ্রেট করা হয় *(arr+i) হিসেবে। এখানে, arr নির্দেশ করে প্রথম অ্যারে এলিমেন্টের অ্যাড্রেস অথবা ০ ইনডেক্স এলিমেন্ট। তাই *(arr+i) মানে অ্যারের প্রথম এলিমেন্ট থেকে i দূরত্বে অবস্থিত এলিমেন্ট। তাই অ্যারে ইনডেক্স ০ থেকে শুরু হয় কারণ প্রাথমিকভাবে i ০ যা অ্যারের প্রথম এলিমেন্ট বোঝায়।

এটি প্রদর্শন করে একটি সি++ প্রোগ্রাম নিচে দেওয়া হলো।

উদাহরণ

#include <iostream>
using namespace std;

int main() {
    int arr[] = {5,8,9,3,5};
    int i;
    for(i = 0; i < 5; i++)
        cout << arr[i] << " ";
    cout << "\n";
    for(i = 0; i < 5; i++)
        cout << *(arr + i) << " ";
    return 0;
}

আউটপুট

উপরের প্রোগ্রামের আউটপুট নিচের মতো:

5 8 9 3 5
5 8 9 3 5

এখন উপরের প্রোগ্রামটি বুঝি।

একটি অ্যারে arr[] ৫টি এলিমেন্ট ধারণ করে। এই এলিমেন্টগুলো একটি ফর লুপ ব্যবহার করে দুইভাবে প্রদর্শন করা হয়েছে: অ্যারে রিপ্রেজেন্টেশন arr[i] এবং *(arr + i)। দুই কেসে ফলাফল একই। এটি দেখানো কোড স্নিপেট নিচে:

int arr[] = {5,8,9,3,5};
int i;
for(i = 0; i < 5; i++)
    cout << arr[i] << " ";
cout << "\n";
for(i = 0; i < 5; i++)
    cout << *(arr + i) << " ";
  1. সি/সি++-তে মাল্টিডাইমেনশনাল অ্যারে ইনিশিয়ালাইজেশন (Initialization)

  2. সি++-এ অ্যারে ইনডেক্স L থেকে R পর্যন্ত যোগফল (arr[i] = i*(-1)^i)

  3. C++ STL-এ array::at() ফাংশন

  4. C# অ্যারে-তে ইন্ডেক্সিং শূন্য (Zero) থেকে কেন শুরু হয়?