Argument-Passing
Argument-Passing by Value
<arg_by_value.c>
#include <stdio.h>
void main ( )
{
int a = 2;
printf ("Value of 'a' in main( ) before calling MyFunction( ) is %d\n", a);
MyFunction (a);
printf ("Value of 'a' in main( ) after calling MyFunction( ) is %d\n", a);
}
void MyFunction (int a)
{
printf ("Value of 'a' inside MyFunction( ) before being changed is %d\n", a);
a = 9;
printf ("Value of 'a' inside MyFunction( ) after being changed is %d\n", a);
}
Here's the output:
UNIX prompt >> a.out
Value of 'a' in main( ) before calling MyFunction( ) is 2
Value of 'a' inside MyFunction( ) before being changed is 2
Value of 'a' inside MyFunction( ) after being changed is 9
Value of 'a' in main( ) after calling MyFunction( ) is 2
UNIX prompt >>
Argument-Passing by Reference
<arg_by_reference.c>
#include <stdio.h>
void main ( )
{
int a = 2;
printf ("Value of 'a' in main( ) before calling MyFunction( ) is %d\n", a);
MyFunction (&a);
printf ("Value of 'a' in main( ) after calling MyFunction( ) is %d\n", a);
}
void MyFunction (int *a)
{
printf ("Value of 'a' inside MyFunction( ) before being changed is %d\n", *a);
*a = 9;
printf ("Value of 'a' inside MyFunction( ) after being changed is %d\n", *a);
}
Here's the output:
UNIX prompt >> a.out
Value of 'a' in main( ) before calling MyFunction( ) is 2
Value of 'a' inside MyFunction( ) before bing changed is 2
Value of 'a' inside MyFunction( ) after bing changed is 9
Value of 'a' in main( ) after calling MyFunction( ) is 9
UNIX prompt >>