まるしまさんのマイページ

値渡しと参照渡しとポインタ

2011/09/09 12:06


某方からプログラミングの質問。値渡しと参照渡しとポインタがごっちゃになって???とのこと。
値渡しってのは、変数のコピーを渡す。つまり、関数実行元と、関数実行先の変数の名前には互換性がない。参照渡しってのは、変数の本体を渡すために、実際に変数の値が保持されているメモリのアドレス、つまりポインタを渡すってことでつまりのつまり、ここで変更された値は関数の実行元の変数にも反映されるってこと。
説明するは非常に (>o<") ですので、簡単なプログラムにて説明。
★ プログラム(C言語)
// 値渡し関数void functionA(int i){
  i = 10;
}
// 参照渡し関数  ※ 変数のポインタを渡すvoid functionB(int *i){
  (*i) = 20;
}
void main(){
  int value = 1;
  printf("関数実行前 : value=%d?n", value);
  functionA(value);  printf("値渡し後 : value=%d?n", value);
  functionB(&value);  printf("参照渡し後 : value=%d?n", value);
}
★ 実行家結果
関数実行前 : value=1値渡し後 : value=1参照渡し後 : value=20
 
え?それでも全然わかんないって_?
(-_-#)
すみません。


Binder: まるしまのバインダー(日記数:874/全体に公開)
このエントリーをはてなブックマークに追加

このブログにコメントをつけるには、ログインする必要があります。
マイページをお持ちでないひとは「マイページを作成する」ボタンを押してマイページを作成してください。
不適切なブログを見つけたら、こちらからご報告ください!

Mail Address(GMO ID):

Password:

自動ログインパスワードを忘れた方

最近書いたブログ


https://www.freeml.com/feed.php?u_id=6211538&f_code=1



Copyright(C)2019 GMO Media, Inc. All Rights Reserved.