* * printf("\ the value of num in the called function % "* )output the value of num before calling the function the value of num in the called function the value of num after calling the function advantages the advantages of using the call-by-reference technique of passing arguments includesince arguments are not copied into the new variablesit provides greater time and spaceefficiency the function can change the value of the argument and the change is reflected in the calling function function can return only one value in case we need to return multiple valueswe can pass those arguments by referenceso that the modified values are visible in the calling function disadvantages howeverthe drawback of using this technique is that if inadvertent changes are caused to variables in called function then these changes would be reflected in calling function as original values would have been overwritten consider the code given below which swaps the value of two integers note the value of integers in the calling function and called function //this function swaps the value of two variables #include void swap_call_val(intint)void swap_call_ref(int *int *)int main(int = = = = printf("\ in main() % and % "ab)swap_call_val(ab)printf("\ in main() % and % "ab)printf("\ \ in main() % and % "cd)swap_call_ref(& & )printf("\ in main() % and % "cd)return void swap_call_val(int aint bint temptemp aa bb tempprintf("\ in function (call by value methoda % and % "ab)void swap_call_ref(int *cint *dint temptemp * * * * tempprintf("\ in function (call by reference methodc % and % "* * )