完全に独立した関数説明
(ポインタを引数にする例:配列)

関数は、『ある目的の処理』を行うために小さくまとめられたプログラムです。
よって、関数はその目的の処理を行う機能(function)があるものといえます。
そして関数の呼び出しでは、その関数の機能を実現するに必要な情報引数で指定します。
このように関数の機能を実現させるとき、関数の外側で宣言されるグローバル変数などの情報に頼らず、 引数の情報だけでプログラムできれば独立して動作できる関数となります。


さて、関数の機能を実現するに必要な情報がたくさんあったり、 関数を呼び出し元の記憶情報を変更する機能の関数はどう作ればよいでしょうか?
 それは引数をポインタにすることで実現できます。
関数を使う側では、情報を記憶する位置(ポインタ)を実引数として関数を呼び出します。
関数の中のプログラムでは、このポインタを基準にして、 ポインタが指し示す呼び出し元の記憶域を、 ポインタ演算子 * や,配列演算子[ ]でアクセスできます
←ボタンクリックで説明していきます。

ポインタで存在しない記憶域をアクセスしないように、注意しなければなりません。
 上記実行の例で、仮にa[3] をアクセスすると実行エラーになる可能性があります。
実行エラーが起きてくれればよいのですが、システムによって隣の関係ない記憶域を アクセスして挙動がおかしい実行をする場合もあります。

よって、十分に注意したブログラミングが必要です。