Pointer As Function Argument (Call by Reference) in hindi in c language पॉइंटर फंक्शन आर्गुमेंट की तरह
call by value:
इस प्रकार मे variable को function argument मे भेजा जाता है |इसमें यूजर define function के द्वारा formal parameter मे हुए changes का effect actual parameter मे नहीं पड़ता है |उदाहरन के लिए :
#include<stdio.h>
#include,conio.h>
int add(int.int);
void main()
{
int a=15,b=23;
add(a,b); ///call of function by call by value //
getch();
}
void add(int c,int d) // formal parameter //
{
int sum ;
sum =c+d;
printf(“Output =%d”,sum);
}
इस उदाहरण मे , avariable a और b की value को call function statement add(a,b); मे actual parameter की तरह पास्ड किया गया है |और function definition statement मे formal parameter c और d मे ,वरिअबेल a और b की value सेव होती है |ओत function मे operation perform होती है|call by reference:
जब किसी function के आर्गुमेंट मे variable के address को pass किया जाता है और address को receive करने के लिए pointer को use किया जाता है use method को call by reference कहते है |इस method मे , function (जिसे called किया जाता है ), calling function के variable की value को change कर सकता है |
उदाहरण के लिए:
#include<conio.n>
#include<stdio.h>
int swap (int * , int *);
void main()
{
int a,b ;
printf(“Enter Data “);
scanf(“%d %d”,&a,&b);
printf(“value of a or b is %d or %d”,a,b);
swap(&a,&b); // Calling function by reference /address of variable a or b //
printf(“After Swapping”);
printf(“value of a or b is %d or %d”,a,b);
getch(0;
}
void swap (int *c,int *d)
{
int t;
t=*d;
*d=*c;
*c=t;
}
इस उदाहरण मे , user define function मे , कोई भी value return नहीं हो रही है क्योकि इसमें function के आर्गुमेंट मे variable a, b के address को pass किया गया है |और function definition मे pointer varibale c और d मे ,variable a और b के address store हो जाते है |
t=*d; से pointer variable ‘d’ मे store address (variable ‘b’ का address ) पर store value t मे assign हो गयी |
*d=*c; से pointer variable ‘c’ मे store address (variable ‘a’ का address) पर store value , pointer variable ‘d’ मे store address (variable ‘b’ का address) पर assign हो जाती है |
*c=t;से pointer variable ‘c’ मे store address (variable ‘a’ का address) मे variable ‘t’ की व;उए store हो जाती है |
inshort , जो भी changes होते है वो variable ‘a’ और ‘b’ की value के साथ होता है |
आउटपुट होगा :
Enter data 12 44
value of a or b is 12 or 44
After Swapping
value of a or b is 44 or 12
Pointer Array as Function Argument
जब किसी array को function के arguments मे pass किया जाता है तब पुरे array की value function argument pass नही होती है बल्कि array के first element का address function argument मे pass होता है |अतः प्रोग्रामर function definition मे,passed array को receive करने के लिए array को नहीं ,pointer को use करते है |क्योकि pointer भी array के first element के address को contain करता है |
जैसे
#include<conio.n>
#include<stdio.h>
int print_array (int , int *);
void main()
{
int a[5],b=5;
printf(“Enter Data “);
scanf(“%d %d”,&a,&b);
for(i=0;i<1;i++)
{
scanf(“%d”,&a[i]);
}
print_array(a , b[]);
getch(0;
}
void print_array(int c,int *d)
{
for(i=0;i<c;i++)
{
printf(“%d”,*d);
d++;
}
}
इस उदाहरण मे ,array ‘b’ को function print_array () के arguments मे pass किया जाता है |और pointer variable ‘d’ मे receive किया जाता है |
Function Returning Pointer :
C language मे , अगर function मे return statement का use नार्मल variable के साथ हो रहा तो केवल एक ही value return होगी |
लेकिन pointer के साथ ,multiple value को main() function या calling function मे return करा सकता है |
उदाहरण के लिए:
#include<conio.h>
#include<stdio.h>
int *great( int * ,int *);
void main()
{
int a,b;
int *c;
printf(“Data”);
scnaf(“%d %d”,&a,&b);
c=great(&a,&b);
printf(“The greater value is %d”,*c);
getch(0;
}
int *great(int *, int *t)
{
if(*s>*t)
{
return(s);
}
else
{
return(t);
}
}
इस उदहारण मे,function declaration मे int * को use इसलिए किया गया है क्योकि function pointer variable s या t की value को return करता है |
आउटपुट होगा :
data 12 45
The greater value is 45
ये ध्यान रखना है की हमेशा return statement मे pointer variable का address return होगा |और printf(“The greater value is %d”,*c); मे ‘*c’ को use किया गया है | greater value को print करने के लिए|
हिंदी माध्यम नोट्स
Class 6
Hindi social science science maths English
Class 7
Hindi social science science maths English
Class 8
Hindi social science science maths English
Class 9
Hindi social science science Maths English
Class 10
Hindi Social science science Maths English
Class 11
Hindi sociology physics physical education maths english economics geography History
chemistry business studies biology accountancy political science
Class 12
Hindi physics physical education maths english economics
chemistry business studies biology accountancy Political science History sociology
English medium Notes
Class 6
Hindi social science science maths English
Class 7
Hindi social science science maths English
Class 8
Hindi social science science maths English
Class 9
Hindi social science science Maths English
Class 10
Hindi Social science science Maths English
Class 11
Hindi physics physical education maths entrepreneurship english economics
chemistry business studies biology accountancy
Class 12
Hindi physics physical education maths entrepreneurship english economics