C、C++言語で関数の引数にはできるだけconstを付けましょう。
ポインタを引数にするときはこんな感じです。
const char* const 変数名
(アドレスもメモリも変更不可)
制限を付けるのは一見不便に思えますがコンパイラに仕事をさせてプログラマが楽をする為です。
後からソースを読むときもconstが付いていれば関数の中身まで読まなく良いかもしれません。
constなのに値が変わる時は原因をバッファオーバーランに絞れます。
(実行中のメモリプロテクトはコンパイラにはできません)
ついでにローカル関数にはstaticを付けましょう。
constやstaticは必要に応じて後から外せばいいんです。
C++ならprotectedを上手に使いましょう。
private < protected < public
です。
しっかり制限したソースは後から読み返した時にほっとしますよ。
(制限といっても機能の自由度を制限するのとは違います)