Formal vs. Actual Arguments in C Functions: Grasping the Distinctions
What are the differences between formal arguments and actual arguments of a function?
Argument: An argument is an expression that is passed to a function by its caller (or macro by its invoker). 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.
Example 01
#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.