A type or "mode" of function parameter that passes information in both directions - from the caller to the function and back to the caller, combining the in and out modes. An "inout" parameter might be used where the function needs to read and update some data belonging to the caller as a side effect of its main purpose.