Formal and Actual Parameter Example
Example: Main Program #include <stdio.h> /** prototypes go here **/ int square(int); /* or int square(int value); */ void get_int(int *); /* or void get_int(int *value); */ void double_it(int *); /* or void double_it(int *value); */ int main(void) { int num1, num2, num3; num1 = square(2); num2 = square(num1); get_int(&num2); get_int(&num3); double_it(&num2); double_it(&num3); return(0); } /*=========================================================================== square: integer function parameter value: in only integer (a copy of the actual parameter is stored in the formal parameter) return value integer that is the square of the formal parameter variable answer : integer description: squares the value of the formal parameter and returns the answer using a function return statement ============================================================================*/ int square(int value) { int answer; answer = value * value; return (answer); } /*=========================================================================== get_int: procedure (called a void function in C) parameter value: out only integer (the address of the actual parameter is used stored in the formal parameter so that changes can be made to the value stored at that location) return value none variable none description: a procedure which gets a single integer from the user and places that value in the formal parameter which is the storage location associated with the actual parameter ============================================================================*/ void get_int(int *value) { scanf("%d", value); } /*=========================================================================== double_it: procedure parameter value: in out integer (the address of the actual parameter is stored in the formal parameter so that changes can be made to the value stored at that location.) return value none variable none description a procedure that doubles the value stored in the location associated with the actual parameter and puts the result in the location associated with the actual parameter ============================================================================*/ void double_it(int *value) { *value = *value * 2; }