Are there any differences between the different types of functions?

So what your asking is basically if you want to pass an argument by reference vs passing it by value.

Passing by value means that during the runtime, a copy of the value of the argument is made and given to the function.

Passing by reference means that only the address (in memory) is passed to the function and all the modification of said variable are done 'in place'.

For most of the applications, this does not yield a big difference. But for large problems (copying big chunks of data, repeating a process several times), the difference in execution time can add up significantly and passing the data by reference is preferred, as the overhead of copying the data numerous times can be avoided.

/r/C_Programming Thread