What is the difference between actual and formal arguments used in functions in C language?

1 Like

The arguments passed to the functions while the function is called is known as the actual arguments, whereas the arguments declared in the function header is called as formal arguments.

Ex. Suppose sum() is a function.

int sum(int x, int y)         /*Here x and y are called formal arguments*/

void main()
int ans;

ans = sum(3,5);       /*Here the arguments 3 and 5 are called actual arguments*/



An argument is an expression which is passed to a function by its caller (or macro by its invoker) in order for the function(or macro) to perform its task. It is an expression in the comma-separated list bound by the parentheses in a function call expression.

Actual arguments:
The arguments that are passed in a function call are called actual arguments. These arguments are defined in the calling function.

Formal arguments:
The formal arguments are the parameters/arguments in a function declaration. The scope of formal arguments is local to the function definition in which they are used. Formal arguments belong to the called function. Formal arguments are a copy of the actual arguments. A change in formal arguments would not be reflected in the actual arguments.


#include <stdio.h>
void sum(int i, int j, int k);
/* calling function */
int main() {
      int a = 5;
      // actual arguments
      sum(3, 2 * a, a);
      return 0;
/* called function */
/* formal arguments*/
void sum(int i, int j, int k) {
      int s;
      s = i + j + k;
      printf("sum is %d", s);

Here 3,2*a,a are actual arguments and i,j,k are formal arguments.