inout Swiftにはポインタという概念がありませんが、inoutを使うことで、関数の引数をポインタとして受け取り値を直接いじるCのような書き方ができます。 inoutを使用した関数の呼び出し方は、普通の関数と違って以下のように実引数の変数の前に&をつけて呼ぶことになります(ただし、&はC言語と同じようにアドレスを示すものではありません)。 func square(inout x:Int, inout y:Int) { x = x * x y = y * y } /* 以下呼び出し側 */ var x = 2 var y = 4 square(&x, &y) // x=4, y=16になる しかし、Swiftはタプルを使うことによって、返り値を複数指定できるため、inoutを使わなくても複数の値を返す関数を定義することができます(引数に構造体を指定することでも、複数の値を返すことができ