以下の説明は私を混乱させました:
引数が変数 x へのポインターである場合、通常は x が変更されると想定します。 f(&x);
ただし、f が x の値を調べるだけで、変更する必要がない場合もあります。
理解するのに疲れました。以下のコードは機能しません。
#include <stdio.h>
void function(int& a)
{
a = 5;
}
void func(int b)
{
b = 5;
}
int main(void)
{
int x = 0;
function(x);
printf("%d", function(x));
func(x);
printf("%d", func(x));
return 0;
}
コードは2 番目の回答から参照します。
int f(int &a){
a = 5;
}
int x = 0;
f(x);
//now x equals 5
int f2(int b){
b = 5;
}
int y = 0;
f2(y);
//y still equals 0