পয়েন্টার এবং অ্যারে
কম্পাইলার দ্বারা অ্যারের সমস্ত উপাদানের জন্য অবিচ্ছিন্ন মেমরি অবস্থানগুলি বরাদ্দ করা হয়৷
বেস অ্যাড্রেস হল অ্যারের প্রথম উপাদানটির অবস্থান।
উদাহরণস্বরূপ, int a [5] ={10, 20,30,40,50};
পাঁচটি উপাদান নিম্নরূপ −
সংরক্ষণ করা হয়
যদি 'p' কে পূর্ণসংখ্যা পয়েন্টার হিসাবে ঘোষণা করা হয়, তাহলে অ্যারে 'a' নিম্নলিখিত অ্যাসাইনমেন্ট দ্বারা নির্দেশিত হতে পারে -
p=a or p=&a[0];
'a'-এর প্রতিটি মান এক উপাদান থেকে অন্য উপাদানে যাওয়ার জন্য p++ ব্যবহার করে অ্যাক্সেস করা হয়। যখন একটি পয়েন্টার বৃদ্ধি করা হয়, তখন এটির মান ডেটাটাইপের আকার দ্বারা বৃদ্ধি করা হয় যা এটি নির্দেশ করে। এই দৈর্ঘ্যকে "স্কেল ফ্যাক্টর" বলা হয়।
পয়েন্টার p এবং ভেরিয়েবল a এর মধ্যে সম্পর্ক নীচে দেখানো হয়েছে −
P = &a[0] = 1000 P+1 = &a[1] = 1004 P+2 = &a[2] = 1008 P+3 = &a[3] = 1012 P+4 = &a[4] = 1016
একটি উপাদানের ঠিকানা তার সূচক এবং ডেটাটাইপের স্কেল ফ্যাক্টর ব্যবহার করে গণনা করা হয়।
উদাহরণ
a[3]=বেস ঠিকানা+(3*স্কেল ফ্যাক্টর অফ int)
এর ঠিকানা=1000+(3*4)
=1000+12
=1012
*(p+3) gives the value of a[3] a[i] = *(p+i)এর মান দেয়
প্রোগ্রাম
#include<stdio.h> main (){ int a[5]; int *p,i; clrscr (); printf (”Enter 5 lements”); for (i=0; i<5; i++) scanf (“%d”, &a[i]); p = &a[0]; printf (“Elements of the array are”); for (i=0; i<5; i++) printf(“%d”, *(p+i)); getch(); }
আউটপুট
Enter 5 elements : 10 20 30 40 50 Elements of the array are : 10 20 30 40 50