পয়েন্টার এবং অ্যারে সম্পর্কে বিশদ বিবরণ যা তাদের পার্থক্য দেখায়।
পয়েন্টার
একটি পয়েন্টার একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা সংরক্ষণ করে। যখন একটি ভেরিয়েবলের জন্য মেমরি বরাদ্দ করা হয়, তখন পয়েন্টার ভেরিয়েবলের মেমরি ঠিকানার দিকে নির্দেশ করে। Unary অপারেটর ( * ) একটি পয়েন্টার ভেরিয়েবল ঘোষণা করতে ব্যবহৃত হয়।
নিম্নোক্ত পয়েন্টার ঘোষণার সিনট্যাক্স।
datatype *variable_name;
এখানে, ডেটাটাইপ হল ভেরিয়েবলের ডেটা টাইপ যেমন int, char, float ইত্যাদি এবং variable_name হল ব্যবহারকারীর দেওয়া ভেরিয়েবলের নাম।
একটি প্রোগ্রাম যা পয়েন্টার প্রদর্শন করে তা নিম্নরূপ দেওয়া হল।
উদাহরণ
#include <stdio.h> int main () { int a = 8; int *ptr; ptr = &a; printf("Value of variable a: %d\n", a); printf("Address of variable a: %d\n", ptr); return 0; }
উপরের প্রোগ্রামের আউটপুট নিম্নরূপ।
Value of variable a: 8 Address of variable a: -2018153420
অ্যারে
একটি অ্যারে হল সংলগ্ন মেমরি অবস্থানগুলিতে একই ধরণের উপাদানগুলির একটি সংগ্রহ। একটি অ্যারের সর্বনিম্ন ঠিকানাটি প্রথম উপাদানটির সাথে মিলে যায় যখন সর্বোচ্চ ঠিকানাটি শেষ উপাদানটির সাথে মিলে যায়। অ্যারে সূচক শূন্য(0) দিয়ে শুরু হয় এবং অ্যারের বিয়োগ এক (অ্যারের আকার - 1) আকার দিয়ে শেষ হয়।
আউটপুট
নিম্নলিখিত অ্যারের সিনট্যাক্স।
type array_name[array_size ];
এখানে, array_name হল একটি অ্যারের দেওয়া নাম এবং array_size হল অ্যারের আকার৷
একটি প্রোগ্রাম যা অ্যারে প্রদর্শন করে তা নিম্নরূপ দেওয়া হয়।
উদাহরণ
#include <stdio.h> int main () { int a[5]; int i,j; for (i = 0;i<5;i++) { a[i] = i+100; } for (j = 0;j<5;j++) { printf("Element[%d] = %d\n", j, a[j] ); } return 0; }
আউটপুট
উপরের প্রোগ্রামের আউটপুট নিম্নরূপ।
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104