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

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


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

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

किसी फंक्शन में सरणी पास करने के 3 तरीके हैं -

  • सूचक के रूप में औपचारिक पैरामीटर

void myFunction(int *param) {
   // Do something
}
  • आकार के सरणी के रूप में औपचारिक पैरामीटर

void myFunction(int param[10]) {
   // Do something
}

  • औपचारिक पैरामीटर एक आकार रहित सरणी के रूप में

void myFunction(int param[]) {
   // Do something
}

उदाहरण

आप इसे इस प्रकार उपयोग कर सकते हैं -

#include<iostream>
using namespace std;
void arrayAccept(int arr[]) {
   cout << "first element is: " << arr[0];
}
int main() {
   int arr[2];
   arr[0] = 0;
   arr[1] = 1;
   arrayAccept(arr);
   return 0;
}

आउटपुट

यह आउटपुट देगा -

first element of array is 0

  1. सी ++ फ़ंक्शन से स्थानीय सरणी कैसे वापस करें?

    एक स्थानीय सरणी को सीधे C++ फ़ंक्शन से वापस नहीं किया जा सकता है क्योंकि यह फ़ंक्शन कॉल के बाद स्मृति में मौजूद नहीं हो सकता है। इसे हल करने का एक तरीका फ़ंक्शन में एक स्थिर सरणी का उपयोग करना है। चूंकि स्थैतिक सरणी का जीवनकाल संपूर्ण कार्यक्रम है, इसे उपरोक्त समस्या के बिना आसानी से C++ फ़ंक्शन से

  1. सी ++ में किसी फ़ंक्शन से सरणी कैसे वापस करें?

    सी ++ पूरे सरणी को वापस नहीं करता है लेकिन यह पॉइंटर को सरणी में वापस कर सकता है। फ़ंक्शन के बाहर, स्थानीय चर का पता वापस नहीं किया जा सकता है। स्थानीय चर को स्थिर बनाकर, यह स्थानीय चर का पता वापस कर सकता है। पॉइंटर वापस करने के लिए सिंटैक्स निम्नलिखित है। int * function_name() { body } यहां, fun

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

    C++ फ़ंक्शन के तर्क के रूप में संपूर्ण सरणी को पारित करने की अनुमति नहीं देता है। हालांकि, आप किसी अनुक्रमणिका के बिना सरणी का नाम निर्दिष्ट करके किसी सरणी में एक सूचक पास कर सकते हैं। किसी फ़ंक्शन में 2D सरणी पास करने के तीन तरीके हैं - 2D सरणी के स्तंभों का आकार निर्दिष्ट करें void processArr(int