アホみたいなコードを書いていたので備忘録
double C = F_to_C(F_temp);
C変数を宣言しつつF_to_C関数の返り値で初期化したかった。
F_to_C(F_temp); double C = F_temp;
こんな二行も使うコードは書いたらダメよって話
Returnだけで関数呼び出し元の変数の値は変わりませんよ!!!!
関数内でreturnするだけで呼び出し元の変数の値が変わると想定したらダメです!!!!(当たり前でしょうが。。)
なんかイメージ的にできそうと思っていたが、ちゃんと上記にのように 変数 Cに関数からの戻り(return)値を代入しましょう!!!!
*追記 値を直接渡している場合は確かにreturnされた値を変数に代入しないといけないが、
referenceで関数に値を渡した場合、関数内でreturnせずとも、呼び出し元の値は変更される。(が、warningが出る場合があるのでちゃんとreturnは書いた方が吉かも、、)
#include <iostream> using namespace std; void func(int &x, int &y, int &z) { x = y + z; y = 10; x = 20; } int main() { int a = 10, b = 20, c = 30; func(a, b, c); cout << a << " " << b << " " << c << endl; return 0; }