Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में कार्य करने के लिए सरणी पास करना

सी ++ किसी फ़ंक्शन के तर्क के रूप में संपूर्ण सरणी को पारित करने की अनुमति नहीं देता है। हालांकि, आप किसी इंडेक्स के बिना ऐरे का नाम निर्दिष्ट करके किसी ऐरे में पॉइंटर पास कर सकते हैं।

यदि आप किसी फ़ंक्शन में एक एकल-आयाम सरणी को तर्क के रूप में पास करना चाहते हैं, तो आपको निम्नलिखित तीन तरीकों में से एक में फ़ंक्शन औपचारिक पैरामीटर घोषित करना होगा और सभी तीन घोषणा विधियां समान परिणाम उत्पन्न करती हैं क्योंकि प्रत्येक संकलक को बताता है कि एक पूर्णांक सूचक जा रहा है प्राप्त किया जाना है।

विधि-1

एक सूचक के रूप में औपचारिक पैरामीटर इस प्रकार हैं -

void myFunction(int *param) {
   .
   .
   .
}

विधि-2

एक आकार सरणी के रूप में औपचारिक पैरामीटर निम्नानुसार हैं -

void myFunction(int param[10]) {
   .
   .
   .
}

विधि-3

औपचारिक पैरामीटर एक असंगठित सरणी के रूप में निम्नानुसार हैं -

void myFunction(int param[]) {
   .
   .
   .
}

अब, निम्नलिखित फ़ंक्शन पर विचार करें, जो एक अन्य तर्क के साथ एक तर्क के रूप में एक सरणी लेगा और पारित तर्कों के आधार पर, यह सरणी के माध्यम से पारित संख्याओं का औसत निम्नानुसार लौटाएगा -

double getAverage(int arr[], int size) {
   int i, sum = 0;
   double avg;
   for (i = 0; i < size; ++i) {
      sum += arr[i];
   }
   avg = double(sum) / size;
   return avg;
}

अब, हम उपरोक्त फ़ंक्शन को इस प्रकार कहते हैं -

#include <iostream>
using namespace std;
// function declaration:
double getAverage(int arr[], int size);
int main () {
   // an int array with 5 elements.
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;
   // pass pointer to the array as an argument.
   avg = getAverage( balance, 5 ) ;
   // output the returned value
   cout << "Average value is: " << avg << endl;
   return 0;
}

जब उपरोक्त कोड को एक साथ संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Average value is: 214.4

जैसा कि आप देख सकते हैं, जहां तक ​​फ़ंक्शन का संबंध है, सरणी की लंबाई कोई मायने नहीं रखती है क्योंकि C++ औपचारिक मापदंडों के लिए कोई सीमा जाँच नहीं करता है।


  1. सी / सी ++ में बहुआयामी सरणी

    C/C++ में, बहुआयामी सरणी को सरल शब्दों में सरणियों के सरणी के रूप में परिभाषित किया गया है। बहुआयामी सरणियों में डेटा को सारणीबद्ध रूप में (पंक्ति प्रमुख क्रम में) संग्रहीत किया जाता है। निम्न आरेख 3 x 3 x 3 आयाम वाले बहुआयामी सरणी के लिए स्मृति आवंटन रणनीति दिखाता है। एल्गोरिदम Begin    

  1. एक सी ++ फ़ंक्शन में एक सरणी पास करना

    C++ फ़ंक्शन के तर्क के रूप में संपूर्ण सरणी को पारित करने की अनुमति नहीं देता है। हालांकि, आप किसी इंडेक्स के बिना ऐरे का नाम निर्दिष्ट करके किसी ऐरे को पॉइंटर पास कर सकते हैं। यदि आप किसी फ़ंक्शन में एक एकल-आयाम सरणी को तर्क के रूप में पास करना चाहते हैं, तो आपको निम्नलिखित तीन तरीकों में से एक मे

  1. मैं सी ++ में सरणी का उपयोग कैसे करूं?

    एक सरणी सन्निहित स्मृति स्थानों में रखे गए समान प्रकार के तत्वों की एक श्रृंखला है जिसे एक अद्वितीय पहचानकर्ता में एक अनुक्रमणिका जोड़कर व्यक्तिगत रूप से संदर्भित किया जा सकता है। C++ में किसी सरणी का उपयोग करने के लिए, आपको पहले इसे घोषित करना होगा, उदाहरण के लिए, int arr[10]; यह आकार 10 के प्रकार