In continuation passing style (CPS), every function f takes an
extra final argument k called the "continuation". The
continuation is itself a function and represents the rest of the
program. Instead of just returning a value in the normal way, f
passes it as an argument to k and returns the result of that.
call/cc takes a function f as its argument and calls f, passing it
the current continuation k. It thus allows a CPS function to be
called in a non-CPS (direct) context.
For example, if the final result is to print the value returned by
call/cc then anything passed to k will also be printed.
E.g, in Scheme: