By default it is call by value
call by reference is achieved with the concept of pointers and call by result or call by value result is same as call by ref. with below difference:
call by value-result is similar to call by reference in that it changes values in the caller, but it's different in that the changes don't take place until the callee exits, and that if the same variable is passed as more than one argument, it'll be treated as separate values in the callee instead of the same value as in call by reference.