কম্পিউটার প্রোগ্রামগুলিতে অ্যারে হ'ল স্ট্রাকচার্ড ডেটা স্টোরেজগুলির মধ্যে সবচেয়ে বেশি ব্যবহৃত ফর্ম forms তাদের প্রক্রিয়াকরণ শ্রেণি পদ্ধতি এবং ফাংশনে প্রয়োগ করা বিভিন্ন অ্যালগরিদম দ্বারা করা যেতে পারে। তদনুসারে, প্রায়শই একটি ফাংশনে অ্যারে পাস করা প্রয়োজন। সি এবং সি ++ ভাষা এই ক্রিয়াটি সম্পাদন করার পদ্ধতিগুলি বেছে নেওয়ার ক্ষেত্রে দুর্দান্ত স্বাধীনতা দেয়।
এটা জরুরি
সি এবং সি ++ ভাষার সংকলক।
নির্দেশনা
ধাপ 1
ফাংশনে একটি নির্দিষ্ট আকারের অ্যারে পাস করুন। উপযুক্ত টাইপের আর্গুমেন্ট রাখতে ফাংশনের প্রোটোটাইপ পরিবর্তন করুন। উদাহরণস্বরূপ, কোনও ফাংশনটির ঘোষণাপত্র যা প্যারামিটার হিসাবে তিনটি উপাদানের পূর্ণসংখ্যার সংখ্যাসূচক মানের একটি অ্যারে নেয় তা দেখতে দেখতে এইরকম হতে পারে:
অকার্যকর অ্যারে ফাংশন (int aNumbers [3]);
এই জাতীয় ফাংশনটিকে আর্গুমেন্ট হিসাবে সরাসরি অ্যারে দিয়ে পাঠানো হয়:
অকার্যকর কিছু কাজ ()
{
int নাম্বারগুলি = {1, 2, 3};
অ্যারে ফাংশন (একটি নম্বর);
}
স্থানান্তরিত তথ্য স্ট্যাকের মধ্যে অনুলিপি করা হয়। ডাকা ফাংশনে অ্যারে পরিবর্তন করা উত্সটি পরিবর্তন করে না।
ধাপ ২
ফাংশনে পরিবর্তনশীল দৈর্ঘ্যের অ্যারে পাস করুন। এটি করার জন্য, কেবল সম্পর্কিত আর্গুমেন্টের মাত্রা নির্দিষ্ট করবেন না:
অকার্যকর অ্যারে ফাংশন (int aNumbers );
বহুমাত্রিক অ্যারেগুলিও একইভাবে পাস করা যেতে পারে (কেবলমাত্র প্রথম "মাত্রা" ভেরিয়েবল হতে পারে):
অকার্যকর অ্যারে ফাংশন (int aNumbers [3] [2]);
এই ফাংশনগুলি প্রথম পদক্ষেপের মতো একইভাবে ডাকা হয়।
কোনও ফাংশনে পরিবর্তনশীল দৈর্ঘ্যের অ্যারেগুলি সঠিকভাবে প্রক্রিয়া করতে সক্ষম হওয়ার জন্য, আপনাকে অবশ্যই অতিরিক্ত প্যারামিটারের মাধ্যমে তাদের উপাদানগুলির সংখ্যা স্পষ্টভাবে পাস করতে হবে, বা কনভেনশনগুলি ব্যবহার করতে হবে যা উপাদানগুলির মানগুলিতে নিজেরাই বিধিনিষেধ আরোপ করে (একটি নির্দিষ্ট মান) অ্যারের শেষের চিহ্ন হতে হবে)।
ধাপ 3
পয়েন্টার দিয়ে অ্যারে পাস করুন। ফাংশন আর্গুমেন্ট অবশ্যই অ্যারের উপাদানগুলির সাথে সম্পর্কিত কোনও প্রকারের সাথে মানের পয়েন্টার হতে হবে। উদাহরণ স্বরূপ:
অকার্যকর ArrayFunction (int * pNumbers);
অ্যারে উপাদানগুলির সাথে কাজ করার জন্য, এবং ঠিকানা গাণিতিক ব্যবহারের জন্য স্বরলিপিটিতে কোনও ফাংশনে ডেটা অ্যাক্সেস করা যায় both
বাতিল
{
পি নাম্বার [0] = 10; // উপাদান 0 অ্যাক্সেস
* (পিএন নাম্বার + 1) = 20; // আইটেম 1 অ্যাক্সেস
}
সতর্ক হোন! যেহেতু ফাংশনটি ডেটার অনুলিপি হয়ে যায় না, তবে এটির পয়েন্টার থাকে, তাই মূল অ্যারেটি সংশোধন করা হবে।
এই পদ্ধতির সুবিধা হ'ল গতি, গণনা সংস্থানগুলির অর্থনীতি এবং একটি নির্দিষ্ট নমনীয়তা। সুতরাং, আপনি এটির একটি স্বেচ্ছাসেবী উপাদান একটি পয়েন্টার পাস করে লক্ষ্য ফাংশন কল করতে পারেন:
অকার্যকর কিছু কাজ ()
{
int নাম্বারগুলি = {1, 2, 3};
অ্যারে ফাংশন (একটি নম্বর); // পুরো অ্যারে
অ্যারে ফাংশন (& নম্বরগুলি [1]); // দ্বিতীয় উপাদান থেকে শুরু
}
এই পদ্ধতিতে সাধারণত অতিরিক্ত প্যারামিটারে উপলব্ধ উপাদানগুলির সংখ্যা পাস করা বা অ্যারে টার্মিনেটর ব্যবহার করাও জড়িত।
পদক্ষেপ 4
এমন একটি পরামিতি সহ কোনও ফাংশনে ডেটা পাস করুন যা একটি বস্তু বা শ্রেণীর কোনও বস্তুর রেফারেন্স যা অ্যারে কার্যকারিতা কার্যকর করে। এই জাতীয় ক্লাস বা শ্রেণিবদ্ধ টেমপ্লেটগুলি সাধারণত জনপ্রিয় গ্রন্থাগার এবং ফ্রেমওয়ার্কগুলিতে পাওয়া যায় (কিউটি তে কিউভেক্টর, এমএফসি-তে ক্যারায়, এসটিএলে:: ভেক্টর ইত্যাদি)।
প্রায়শই এই শ্রেণিগুলি রেফারেন্স গণনা সহ একটি অন্তর্নিহিত তথ্য ভাগ করে নেওয়ার কৌশল বাস্তবায়িত করে, যখন ডেটা সংশোধন করা হয় কেবল তখনই লিখিত অনুলিপি (লেখার অনুলিপি) করে। এটি আপনাকে ফাংশন এবং পদ্ধতিগুলির আর্গুমেন্টের মাধ্যমে মান দ্বারা অ্যারে অবজেক্টগুলি পাস করার ক্ষেত্রেও গণ্য সংস্থানগুলির ব্যবহারকে হ্রাস করতে সহায়তা করে:
অকার্যকর অ্যারে ফাংশন (কিউভেক্টর ওআর্রে)
{
int nItemCount = oArray.count ();
int nItem = oArray [0];
}
অকার্যকর কিছু কাজ ()
{
কিউভেেক্টর ওআরয়ে (10);
(int i = 0; i) এর জন্য