JOIN us on
WhatsApp Group Join Now
Telegram Join Join Now

हिंदी माध्यम नोट्स

Categories: C Language in hindi

Pointer As Function Argument (Call by Reference) in hindi in c language पॉइंटर फंक्शन आर्गुमेंट की तरह

पॉइंटर फंक्शन आर्गुमेंट की तरह Pointer As Function Argument (Call by Reference) in hindi in c language :-
function मे हमने पढ़ा था की variables को main() function से user define function के लिय दो तरीके होते है |एक call by value और call by reference |
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 करने के  लिए|

Sbistudy

Recent Posts

मालकाना का युद्ध malkhana ka yudh kab hua tha in hindi

malkhana ka yudh kab hua tha in hindi मालकाना का युद्ध ? मालकाना के युद्ध…

4 weeks ago

कान्हड़देव तथा अलाउद्दीन खिलजी के संबंधों पर प्रकाश डालिए

राणा रतन सिंह चित्तौड़ ( 1302 ई. - 1303 ) राजस्थान के इतिहास में गुहिलवंशी…

4 weeks ago

हम्मीर देव चौहान का इतिहास क्या है ? hammir dev chauhan history in hindi explained

hammir dev chauhan history in hindi explained हम्मीर देव चौहान का इतिहास क्या है ?…

4 weeks ago

तराइन का प्रथम युद्ध कब और किसके बीच हुआ द्वितीय युद्ध Tarain battle in hindi first and second

Tarain battle in hindi first and second तराइन का प्रथम युद्ध कब और किसके बीच…

4 weeks ago

चौहानों की उत्पत्ति कैसे हुई थी ? chahamana dynasty ki utpatti kahan se hui in hindi

chahamana dynasty ki utpatti kahan se hui in hindi चौहानों की उत्पत्ति कैसे हुई थी…

1 month ago

भारत पर पहला तुर्क आक्रमण किसने किया कब हुआ first turk invaders who attacked india in hindi

first turk invaders who attacked india in hindi भारत पर पहला तुर्क आक्रमण किसने किया…

1 month ago
All Rights ReservedView Non-AMP Version
X

Headline

You can control the ways in which we improve and personalize your experience. Please choose whether you wish to allow the following:

Privacy Settings
JOIN us on
WhatsApp Group Join Now
Telegram Join Join Now