What's the difference between call by reference and copy/restore
What's the difference in the outcome between call by reference and copy/restore? Background: I'm currently studying distributed systems. Concerning the passing of reference parameters for remote procedure calls, the book states that: "the call by reference has been replaced by copy/restore. Although this is not always identical, it is good enough". I understand how call by reference and copy/restore work in principle, but I fail to see where a difference in the result may be? Examples taken from here . Main code: #include <stdio.h> int a; int main() { a = 3; f( 4, &a ); printf("%d\n", a);