C Programming and Data Structures: Unit II: C Programming – Advanced Features

Arrays and Functions

Syntax, Example C programs

Thus instead of actual value, the address is passed as a parameter to the function hence it is called parameter passing by address.

Arrays and Functions

When an array is passed as an argument to the function then we are actually passing the base address of an array to the function. Using this base address we can access the remaining elements of the array in the function. Thus instead of actual value, the address is passed as a parameter to the function hence it is called parameter passing by address.

 We will understand this concept with the help of following example -

#include<stdio.h>

#include<conio.h>

void main()

{

void fun(int a[5]);/*function declaration*/

int a[]={10,20,30,40,50};

 clrscr();

fun(a);/*call to the function*/   Passing the base address of an array

getch();

}

void fun(int a[6])

int i;

}

for(i=0;i<5;i++)

printf("%d",*(a+i));

/* or printf("%d",a[i]);*/

}

Output

10 20 30 40 50

In above program array name is passed as an argument to the function then automatically the base address is passed to the function. This should be done when we give call to the function. While declaring such a function the array name along with its data type and square brackets [ ] should be specified. Even though we do not specify the actual size, it is allowed in C.

For example :

While declaring the function with an argument as array -

void fun(int);/*is invalid*/

void fun(a);/*is invalid*/

void fun(a[ ]);/*is invalid*/

void fun(int a);/*is invalid*/

But,

void fun(int a[6]); /*is valid*/

void fun(int a[ ]); /*is valid*/

void fun(int [6]); /*is valid*/

void fun(int []);/*is valid*/

 Similarly in function definition -

void fun(int [6]) /*is invalid*/

void fun(int a) /*is invalid*/

void fun(int[])/*is invalid*/

void fun(a[6]) /*is invalid*/

void fun(int) /*is invalid*/

But

void fun(int a[6]); /*is valid*/

void fun(int a[]); /*is valid*/

Program: Write a C program to calculate the sum of all the integers in an array using pointer.

#include<stdio.h>

#include<conio.h>

void main()

{

int fun(int []);/*function declaration*/

int a[]={10,20,30,40,50};

clrscr();

printf("\nSum = %d",fun(a));/*call to the function*/

getch();

}

int fun(int a[])

{

int i,sum=0;

for(i=0;i<5;i++)

sum=sum+ *(a+i);

Using pointer the next location in array is = (a + i) and the value at that location is obtained by * (a + i)

return sum;

}

Output

Sum = 150

 

C Programming and Data Structures: Unit II: C Programming – Advanced Features : Tag: : Syntax, Example C programs - Arrays and Functions