- ベストアンサー
仮引数の変数をローカル変数に格納する理由について
プログラムの多くは、仮引数のポインタを一度ローカル変数に格納して使っていますが、なぜでしょうか?データが壊れてしまったりするのでしょうか・・・ typedef struct _LIST{ int value; struct LIST *next; struct LIST *prev; }LIST,*LIST_PTR; void func(LIST_PTR list, char *str){ LIST_PTR wk_list; char *wk_str; wk_list = list; wk = str;
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
質問にある例だと、func()の中でwk_listの値が変化して、しかも元々のlistの値が後で必要になる場合にそういうことをする必要があります。 逆に言うと、wk_listの値がfunc()の中で変化しないとか、元々のlistの値を後で使うことはないとかの条件であれば、ローカル変数で受ける必要はありません。 ポインタ以外の変数の場合も同じ。
お礼
ありがとうございます。 データ領域とかも関係しているのかな、なんて変に考えこんでました。