概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C 値による呼び出し
2006年08月20日 (日) | 編集 |
call by valueだとか。
Cにおける最も一般的な引数渡しなんだとさ。
実引数の実際の値(value)を仮引数に渡すとのこと。
が、この方法だと逆に仮引数の値を実引数に返すことは出来ないので、引数によるデータのやり取りとしては、実→仮への一方通行になるんだそうだ。
こんな感じだな

func(a,b)
   ↓ aとbの実際の値をxとyに渡す
func(int x,int y)
{
 なんか式
}


って今までやってきた方法がこれっぽい。
一方通行なので渡されたaとbの値をどうしようがmain関数の方には影響しないそうな。
そらそうだわな。returnで指定した値しかmainには返せなかったし。

んじゃ今回も実際に見てみよう。
引数で与えられた数のスペースを出力する関数を作ってみる

void spa(int n)
{
 for(;n>0;n--)
  printf(" ");
}


ループ変数nの初期値はmainより渡されるのでここでは定義しない?
とりあえずnが大きければ大きいほど出力されるスペースの個数は増える。

void main(void)
{
 int i;
 for(i=0;i<5;i++){
  spa(i)
  printf("何回言うんだよ\n");
 }
}


後はこれをmainで呼び出す。
関数spaに渡される値は0~4までで段々大きくなっていくな。

call_test.jpgcall_test2.jpg
こんな感じ

まあやってることは前回までと大差ないんだけどな。
どういうことをやっていたのか? ということで。

まとめ。

今まではcall by valueって手法で引数を受け渡ししていたらしい
これはとても独立性が高い方法なんだ


以上。
まああまり難しくはないな。
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。