argc, argv ともに仕様で書き換え可能らしい。

 

<引用>JIS X3010
5.1.2.2.1 プログラム開始処理
- 仮引数argc,argv及びargv配列が指す文字列は,プログラムによって変更可能でなければならない。さらに,プログラム開始処理からプログラム終了処理までの間,最後に格納された値を保持しなければならない。
</引用>

 

出典を確認する必要あり。

JIS X 3010:2003 プログラム言語C に上記の記述があることを確認した。