テスト1:
#include <iostream>
void function(int ¶meter);
int main()
{
int variableOne = 0;
int variableTwo = 6;
function(variableOne);
std::cout << variableOne << std::endl;
function(variableTwo);
std::cout << variableTwo << std::endl;
return 0;
}
void function(int ¶meter) // ???
{
parameter += 5;
}
テスト2:
#include <iostream>
int main()
{
int variableOne = 2;
int variableThree = 7;
int &variableTwo = variableOne;
std::cout << variableOne << std::endl;
&variableTwo = variableThree; // ERROR (wrong side of operand etc...)
std::cout << variableThree << std::endl;
return 0;
}
1)では、なぜ&parameterに(引数の)値を複数回割り当てることができるのに(テスト1)、&variableTwo(テスト2)を割り当てることができないのですか?
2)これは、(テスト1)パラメータのメモリアドレスがvariableOneとvariableTwoに割り当てられているためですか?または、variableOneの値がパラメーターに割り当てられ、後でvariableTwoに割り当てられますか?
3)おそらく、関数が呼び出されるたびにパラメーターの新しいインスタンスが作成されるのでしょうか?