পয়েন্টার হল একটি ভেরিয়েবল যা অন্য একটি ভেরিয়েবলের ঠিকানা সংরক্ষণ করে।
বৈশিষ্ট্য
পয়েন্টার মেমরি স্পেস বাঁচায়।
মেমরি লোকেশনে ডায়রেক্ট এক্সেসের কারণে পয়েন্টারের এক্সিকিউশন টাইম দ্রুত।
পয়েন্টারের সাহায্যে মেমরি দক্ষতার সাথে অ্যাক্সেস করা যায়, অর্থাৎ মেমরি ডাইনামিক্যালি এলোকেট এবং ডি-এলোকেট হয়।
পয়েন্টার ডেটা স্ট্রাকচারের সাথে ব্যবহৃত হয়।
পয়েন্টার এবং টু-ডাইমেনশনাল অ্যারে
টু-ডাইমেনশনাল অ্যারের জন্য মেমরি এলোকেশন নিম্নরূপ:
int a[3][3] = {1,2,3,4,5,6,7,8,9};

a[1][2] = *(1234 + 1*3+2) = *(1234 + 3+2) = *(1234 + 5*4) // 4 হল স্কেল ফ্যাক্টর = *(1234+20) = *(1254) a[1][2] = 6
উদাহরণ
পয়েন্টার এবং টু-ডাইমেনশনাল অ্যারের জন্য C প্রোগ্রাম নিচে দেওয়া হল:
#includemain(){ int a[3][3], i, j; int *p; clrscr(); printf("২ডি অ্যারের এলিমেন্টগুলো লিখুন"); for(i = 0; i < 3; i++){ for(j = 0; j < 3; j++){ scanf("%d", &a[i][j]); } } p = &a[0][0]; printf("২ডি অ্যারের এলিমেন্টগুলো"); for(i = 0; i < 3; i++){ for(j = 0; j < 3; j++){ printf("%d\t", *(p + i*3 + j)); } printf("\n"); } getch(); }
আউটপুট
উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:
২ডি অ্যারের এলিমেন্টগুলো লিখুন 1 2 3 4 5 6 7 8 9 ২ডি অ্যারের এলিমেন্টগুলো 1 2 3 4 5 6 7 8 9