我在这里很新。希望我能够随着时间的推移做出贡献。我很难分配这个新值。每当我运行代码时,它们只会得到零。
#include <iostream>
using namespace std;
void CoordTransform(int xVal,int yVal,int xValNew, int yValNew) {
xValNew = (xVal + 1) * 2;
yValNew = (yVal + 1) * 2;
return void();
}
int main() {
int xValNew = 0;
int yValNew = 0;
CoordTransform(3, 4, xValNew, yValNew);
cout << "(3, 4) becomes " << "(" << xValNew << ", " << yValNew << ")" << endl;
return 0;
}
答案 0 :(得分:3)
传递参数就是传递&#34;值&#34;。更改函数中的值不会影响保存传递给函数的值的原始变量。
通过引用传递。引用是原始变量,因此更改函数中的参数会更改原始变量。
void CoordTransform(int xVal, int yVal, int& xValNew, int& yValNew) {
xValNew = (xVal + 1) * 2;
yValNew = (yVal + 1) * 2;
}
此外,返回空值意味着您不能直接从函数返回任何内容。不要使用退货声明。
答案 1 :(得分:0)
您的意思是以下
#include <iostream>
using namespace std;
void CoordTransform( int xVal, int yVal, int &xValNew, int &yValNew )
{
xValNew = (xVal + 1) * 2;
yValNew = (yVal + 1) * 2;
}
int main()
{
int xValNew;
int yValNew;
CoordTransform( 3, 4, xValNew, yValNew );
cout << "(3, 4) becomes " << "(" << xValNew << ", " << yValNew << ")" << endl;
return 0;
}
函数的第三个和第四个参数必须是引用类型。