Each actual argument is evaluated to a value before call. On entry, value is bound to formal parameter just like a local variable. Updating formal parameter doesn't affect actuals in calling procedure. Implement by copying. On entry, the formal is bound to the address, which must be dereferenced to get value, but can also be updated .
Accesses are slower.
E.g., in Pascal, args are cbv by default, and cbr if the VAR keyword is used. In Pascal, r-values of both arrays and records are the actual contents. In PCAT, r-values of both records and arrays are pointers to the actual contents. These issue also affect assignment, of course. Flexible, but potentially very confusing, and inefficient to implement.