#ポインタ渡しって何?
##値渡し
関数に引数を渡すときに
int hoge(int fuga){
//fugaに関する何らかの処理
return fuga;
}
int main(){
int piyo;
piyo=hoge(piyo);
return 0;
}
と、することがよくあると思います。
これを値渡しといいます。
##ポインタ渡しって??
ポインタ渡しは引数を渡すときに変数ではなくポインタ変数をつかいます。
void hoge(int *fuga){//return文を書かなくていいのでvoid型にもできます
//何らかの処理
}
int main(){
int piyo;
hoge(&piyo);//引数にアドレスを渡している
return 0;
}
#何が違うの??
//値渡し
int piyo;
piyo=hoge(piyo);
//ポインタ渡し
int piyo;
hoge(&piyo);
値渡しでは変数piyoに関数hogeにpiyoを引数とした値を代入しています。
ポインタ渡しではメモリのアドレスを渡して変数に変更を加えます。
値渡しとアドレス渡し、状況でうまく使い分けましょう。