プロシージャーへの変数の渡し方は、2通りあります。変更すると、呼び出し元のプロシージャーの変数の値も変わってしまいます。ポインタと同じと考えればよいでしょう。ように呼び出し元のプロシージャーに影響することはありません。呼び出したプロシージャーで引数の値を変更すると、思わぬトラブルになりかねません。十分に注意してください。変数(counter)の値が変更されています。変数(counter)の値は変わっていません。(グーグルランキングチェッカー)。