क्या C ++ में एक array को किसी function में पास करना संभव है? यहाँ हम निम्नलिखित के साथ इस पर चर्चा करेंगे,
हम किसी function में array पास नहीं कर सकते, हालांकि आप actual parameter में array -name (subscript operator के बिना) का उपयोग करके array के first element के address को pass कर सकते हैं।
Passing Array Elements to a Function और Passing Array to a Function, दोनों काफी अलग हैं।
passing array elements to function in C++ में, value pass की जाएगी और function को multiple time तब तक call किया जाएगा जब तक कि array element समाप्त नहीं हो जाते जबकि passing an array to function में केवल पहले element का address ही pass होगा और function definition में अन्य array के अन्य elements को loop के जरिए access किया जा सकेगा ऐसे में function एक ही बार call होगा।
हमने पहले से ही array के concept में उल्लेख किया है कि array -name हमेशा अपने पहले element के base address को refer करता है ,
Passing array to a function in the Single dimensional array
इस method में, हम एक array को function में pass करते हैं-
for(int i=0;i<size;i++)
{
cin>>arr[i];
}
get_element(arr);
ऊपर दिए गए syntax में, inside loop , array के सभी elements को पहले arr [] में स्टोर किया गया है और फिर loop के बाहर एक function get _element () को call किया जाता है, जो array के first element के address को pass करता है।
how to pass an array into a function?
सबसे पहले, function declaration में arguments /parameters तर्क के रूप में array -variable declare करते हैं,
void get_array(int[]);
जबकि function calling में, function header में केवल array -name (बिना [] operator ) से call किया जाता है, जैसे-
get_array(array-name);
लेकिन function definition में, function header में arr[] declare किया जाता है-
void get_array(int arr[])
{
..........;
}
Passing Array to a function program in C++
इसका पूरा program नीचे दिया गया है –
#include<iostream.h>
#include<conio.h>
<strong>
void get_element(int[]);</strong>// function declaration
void main()
{
clrscr();
int arr[5];
cout<<"Enter the five Element in the Array:\n";
for(int i=0;i<5;i++)
{
cout<<" arr["<<i<<"]=";
cin>>arr[i]; //store element into arr[i]
}
<strong> get_element(arr);</strong> //passing first element address
getch();
}
// function definition
void get_element(int arr[])
{
cout<<"Element display using function: ";
for(int i=0;i<5;i++)
{
cout<<"\n arr["<<i<<"]="<<arr[i];
}
}
OUTPUT
Enter the five Element in the Array:
arr[0]=3
arr[1]=5
arr[2]=2
arr[3]=4
arr[4]=8
Element display using function:
arr[0]=3
arr[1]=5
arr[2]=2
arr[3]=4
arr[4]=8
Explanation
Program में, user input arr[] में store होता है जैसे –
arr[5] = 3 5 4 2 8
सबसे पहले, inside loop , हमने array-variable arr [i] में user input को store किया गया है। फिर loop से बाहर , function get_array (arr) को call किया गया है जैसे कि,
for(.....)
{
....
cin>>arr[i];
}
get_array(arr);
याद रहे , यहाँ हम केवल function get_array (arr) में इसके first element के base address को पास करने के लिए array name “arr ” use करते हैं।
But what, if Array-Elements are already declare in the Program
ऐसे स्थिति में ,
void main()
{
clrscr();
int arr[5]={3,4,2,1,4};
get_element(arr);
getch();
}
अन्य statements में ऊपर जैसे ही होंगे।
यहां ध्यान दें, यदि array size user input पर निर्भर करता है, तो function में केवल एक अतिरिक्त parameter जोड़ा जाएगा, फिर
void get_array(int[],int); // in function declaration
void get_array(arr,size); // in function calling
void get_array(int arr[],int size){ } // in function definition
Passing an Array to a function in multi dimensional array
इसका syntax उपरोक्त program से थोड़ा अलग है,
सबसे पहले function declaration में, parameters को array के रूप में declare करते हैं –
void get_array(int[2][3]);
जबकि function calling में, function को केवल array name (बिना [] operator के ) से call किया जाता है, जैसे-
get_array(array-name);
लेकिन function definition में, लेकिन formal parameter में array को इसके size के साथ declare किया जाता है-
void get_array(int arr[2][3])
{
..........;
}
इसका program नीचे दिया गया है-
#include<iostream.h>
#include<conio.h>
void get_array(int[2][3]);// function declaration
void main()
{
clrscr();
cout<<"\nEnter Five Element in the Array\n";
for(int i=0;i<2;i++)
{
for(int j=0; j<3;j++)
{
cout<<"arr["<<i<<"]["<<j<<"] = ";
cin>>arr[i][j];
}
}
get_array(arr);//base address will be passed
getch();
}
// function definition
void get_array(int arr[2][3])+
{
cout<<"\nElement display using function\n";
for(int i=0;i<2;i++)
{
for(int j=0; j<3;j++)
{
cout<<"arr["<<i<<"]["<<j<<"] = "<<arr[i][j]<<endl;
}
}
}
OUTPUT
Enter six Element in the Array
arr[0][0] = 2
arr[0][1] = 1
arr[0][2] = 4
arr[1][0] = 5
arr[1][1] = 7
arr[1][2] = 6
Element display using function
arr[0][0] = 2
arr[0][1] = 1
arr[0][2] = 4
arr[1][0] = 5
arr[1][1] = 7
arr[1][2] = 6
लेकिन Two Dimensional Array में अगर पहले से ही elements declared हैं, तो-
void main()
{
clrscr();
int arr[2][3]={
{3,4,3},
{3,2,4}
};
get_array(arr);
getch();
}
बाकी statements पहले की तरह ही होंगे।
जब हम किसी function में array को pass करने की बात करते हैं तो केवल array के first element के base address को ही pass कर पाते हैं जबकि Passing Array Elements to a function में हम array elements को एक एक करके pass करते हैं।
Related exercise: