The values of a and b are passed to swap, and the function does swap them, but when the function returns, nothing has changed in the main function.
Permission is granted to access, download, share, and distribute, as long as this notice remains. In any case, in practice this could not be implemented in separate processors, as it violates Bernstein's conditions for parallel computing.
For simple variables C allows one to pass the address of the variable explicitly. However, an XCHG is usually the fastest way to swap two machine-size words residing in registers. Copy constructors for classes containing a lot of data, e.
Now draw the two pointers i and j, along with the integer t.
Notice that the code for the actual swap is simple: swap a, b. Notice that is this case you don't need the variable t. Thus, i points to a draw an arrow from i to a and j points to b draw another arrow from b to j. It would be infeasible to keep the processors sufficiently in sync with one another for this swap to have any significant advantage over traditional versions.
Another way to say this is to say that the calling function is telling the called function where to find the variable. This causes a segmentation fault.