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

C++ में फंक्शन को ऐरे पास करना

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;

// फंक्शन घोषणा:
double getAverage(int arr[], int size);

int main() {
    // 5 तत्वों वाला एक int ऐरे।
    int balance[5] = {1000, 2, 3, 17, 50};
    double avg;

    // ऐरे के पॉइंटर को तर्क के रूप में पास करें।
    avg = getAverage(balance, 5);

    // लौटाए गए मान को आउटपुट करें
    cout << "Average value is: " << avg << endl;

    return 0;
}

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

Average value is: 214.4

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

  1. C/C++ में मल्टीडायमेंशनल ऐरे C/C++ में मल्टीडायमेंशनल ऐरे

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

  1. - C++ फ़ंक्शन में ऐरे पास करना

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

  1. - C++ में सरणी (Arrays) का उपयोग कैसे करें?

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