সমস্যাটা উদাহরণ দিয়ে বোঝাচ্ছি

প্রথমে One Dimensional Array'র ব্যাপারটা আমার মত করে ক্লিয়ার করি তাহলে আমার প্রশ্ন বুঝতে আপনাদের সুবিধা হবে।

int[] array1;
int[] array2;

এখানে array1 এবং array2 নামের ২ টা Array Reference Variable Declare করা হইছে যা value হিসাবে int Type এর Element এর One Dimensional Arrary'র রেফারেন্স রাখবে।

array1 = new int[3];
array2 = new int[3];

এখানে ২ টা int type এর ৩ element এর Array ক্রিয়েট করে Array'র Reference গুলা যথাক্রমে array1 এবং array2 তে assign করা হইছে।

এবার নিচে Array দুইটার element গুলোতে value assign করে দিচ্ছি।

array1[0] = 1;
array1[1] = 2;
array[2] = 3;

array2[0] = 11;
array2[1] = 12;
array2[3] = 13;

এবার আসি Two Dimensional Array তে

int[][] array3 = new int[2][2];

assignment operator এর বাম পাশে একটা Reference Variable Declare করছি যেইটা একটা int type এর element এর Two Dimensional Array'র রেফারেন্স রাখবে। এরপর এএতে ২ Row এবং column বিশিষ্ট array ক্রিয়েট করে Reference assign করা হইছে।

এখন যদি

array3[0] = array1;
array3[1] = array2;

এভাবে দুইটা স্টেটমেন্ট লিখি তাহলে আমি array1, array2 আর array3[0], array3[1] এর মধ্য শুধু পার্থক্য দেখতে পাচ্ছি, array3[0] এবং array3[1] একি জিনিস। পার্থক্য শুধু array1, array2 এর জন্য যেকোন সংখ্যক element এর Array'র Reference রাখা যাবে আর array3[0], array3[1] এর element সংখ্যা নির্দিষ্ট (২)।

প্রশ্ন হচ্ছে, তাহলে কি Two Dimensional Array'র Row সংখ্যা দ্বারা আসলে বুঝায় Array টা আর কত গুলো One Dimensional Array'র Reference রাখবে? মানে সি এর Pointer Array'র মত বলা যায়। যেমনঃ

int *p[2];

মানে হচ্ছে, এই p নামের Pointer Array টা ২ টা int type ভ্যারিয়েবলের এড্রেস রাখবে। আর এর সাথে যদি array3 এর কম্পেয়ার করি তাহলে array3 ভ্যারিয়েবলটার মাধ্যমে ২ টা One Dimensional Array'র Reference (Address) রাখবে। আর column সংখ্যা দ্বারা নির্দিষ্ট করা হইছে যে, সর্বোচ্চ ২ টা element রাখতে পারবে প্রত্যেকটা Array তে।

asked 30 Sep '16, 19:47

_Shaon_'s gravatar image

_Shaon_
796220


array1, array2 এর জন্য যেকোন সংখ্যক element রাখতে পারবেন কিন্তু array[size] দিলে size এর বেশি element রাখতে পারবেন না । আর 2D array এর প্রত্যেক row ই হল একএকটা 1D array যার size আগে থেকে বলে দেয়া থাকে ।

আমারা একটা 2D array ডিক্লার করি,

int[][] multi = new int[3][5];

উপরে টা আপনি নিচের মত করে লিখতে পারবেন,

int[][] multi = new int[3][];

multi[0] = new int[5];
multi[1] = new int[5];
multi[2] = new int[5];

তাই আমরা array3[0] কে Array Reference Variable বলতে পারি :)

আপনি এটা পড়ে দেখতে পারেন 2D array

ধন্যবাদ :)

permanent link

answered 01 Oct '16, 04:02

menon's gravatar image

menon
4.7k334

edited 01 Oct '16, 08:06

1

প্রত্যেকটা Row ই একেকটা Array জানি কিন্তু array3[0], array3[0] এগুলা কি Array Reference Variable হিসাবে কাজ করে?

(01 Oct '16, 07:24) _Shaon_
1

উত্তর এডিট করে দিলাম ।

(01 Oct '16, 08:21) menon
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×210
×56
×4
×2
×1

question asked: 30 Sep '16, 19:47

question was seen: 660 times

last updated: 01 Oct '16, 08:21