C Programming Call By Value and Reference Arguments

Function Arguments in C

Arguments are generally passed to functions in any one of the two ways.

  • Call by value - sending values of the arguments.
  • Call by reference - sending the address of the arguments.

Call By Value Arguments:

Each actual arguments in the calling function is copied into corresponding formal arguments of the called function.

So changes happened to the formal arguments in the called function have no effect on the values of the actual arguments.

C Program For Call By Value Example

#include <stdio.h>                                                          
                                                                                
// Swap function declaration                                                    
void swap(int, int);                                                            
                                                                                
void main()                                                                     
{                                                                               
   int a, b;                                                                    
                                                                                
   printf("Enter a: ");                                                         
   scanf("%d", &a);                                                             
   printf("Enter b: ");                                                         
   scanf("%d", &b);                                                             
                                                                                
   printf("Before swap: a = %d, b = %d\n", a, b);                               
   swap(a, b);                                                                  
   printf("After Swap: b = %d, b = %d\n", a, b);                                
}                                                                               
//Swap function definition                                                      
void swap(int a, int b)                                                         
{                                                                               
   int temp;                                                                    
   temp  = b;                                                                   
   b = a;                                                                       
   a = temp;                                                                    
}    
Output:
$ cc swap2.c 
$ ./a.out 
Enter a: 10
Enter b: 5
Before swap: a = 10, b = 5
After Swap: b = 10, b = 5

Call By Reference Arguments:

Address of the actual arguments in the calling function is copied into formal arguments in the called function.

Changes in formal arguments in the called function have effect in the actual arguments in the calling function.

C Program For Call By Reference Example:

#include<stdio.h>                                                               
                                                                                                                                        
// Swap function declaration                                                    
void swap(int*, int*);                                                          
                                                                                
void main()                                                                     
{                                                                               
   int a, b;                                                                    
                                                                                
   printf("Enter a: ");                                                         
   scanf("%d", &a);                                                             
   printf("Enter b: ");                                                         
   scanf("%d", &b);                                                             
                                                                                
   printf("Before swap: a = %d, b = %d\n", a, b);                               
   swap(&a, &b);                                                                
   printf("After Swap: b = %d, b = %d\n", a, b);                                
}                                                                               
//Swap function definition                                                      
void swap(int *a, int *b)                                                       
{                                                                               
   int temp;                                                                    
   temp  = *b;                                                                  
   *b = *a;                                                                     
   *a = temp;                                                                   
}                                                                                      
Output:
$ cc swap.c
$ ./a.out 
Enter a: 34
Enter b: 54
Before swap: a = 34, b = 54
After Swap: b = 54, b = 34

C Programming Examples

C Program To Implement Linked List and Operations

C Program To Implement Sorted Linked List and Operations

C Program to Reverse the Linked List

C Program to Stack and Operations using Linked List

C Program to Queue and Operations using Linked List

C Program to calculate multiplication of two numbers using pointers

C Program To Calculate Median

C Program To Calculate Standard Deviation

C Program For Fahrenheit To Celsius Conversion

C Program To Calculate Average

C Program For Quadratic Equations

C Program To Check Character Type

C Program To Find Largest Of Three Values

C Program To Find Max Value In Array

C Program To Find Min Value In Array

C Program To Print Multiplication Table

C Program For Frequency Counting

C Program To Read A Line Of Text

C Program To Find ASCII Value For Any Character

C Program To Find A Character Is Number, Alphabet, Operator, or Special Character

C Program To Find Reverse Case For Any Alphhabet using ctype functions

C Program To Find Number Of Vowels In Input String

C Program Pointers Example Code

C Program To Find Leap Year Or Not

C Program To Swap Two Integers Using Call By Reference

C Program To Swap Two Integers Without Using Third Variable

C Program To List Prime Numbers Upto Limit

C Program To List Composite Numbers Upto Limit

C Program To Calculate Compound Interest

C Program To Calculate Depreciation Amount After of Before Few Years

C Program To Calculate Profit Percentage

C Program To Calculate Loss Percentage

C Program To Find String Is Polindrome Or Not

C Program To Find Factorial of a Number

C Program To Check Number is a Polindrome or Not

C Program To Generate Random Integers

C Program To Generate Random Float Numbers

C Program to find Square Root of a Number

C Program to find Area of a Rectangle

C Program to find Perimeter of a Rectangle

C Program to find Area of a Square

C Program to find Area of a Triangle

C Program to find Area of a Parallelogram

C Program to find Area of a Rhombus

C Program to find Area of a Trapezium

C Program to find Area of a Circle and Semi-circle

C Program to find Circumference of a Circle and Semi-circle

C Program to find length of an arc

C Program to find Area of a Sector

Privacy Policy  |  Copyright@2017 - All Rights Reserved.  |  Contact us   |  Report website issues in Github   |  Facebook page   |  Google+ page

Free online programming tutorials

Email Facebook Google LinkedIn Twitter
^