【发布时间】:2016-06-11 07:18:51
【问题描述】:
我是编程新手,这里有一个关于按引用传递如何工作的简单问题。在这个程序中,我正在计算一个二次方程的根。
void getCoefficients(double &a, double &b, double &c);
void solveQuadratic(double a, double b, double c, double &x1, double &x2);
void printRoots(double x1, double x2);
void error(string msg);
int main() {
double a,b,c,x1,x2;
getCoefficients(a,b,c);
solveQuadratic(a,b,c,x1,x2);
printRoots(x1,x2);
return 0;
}
所以,我的问题是我似乎是从主程序向 getCoefficients 和 solveQuadratic 传递值,但是在 getCoefficients 和 solveQuadratic 的函数定义中,我似乎接受引用作为参数并且对它的工作原理感到困惑?
【问题讨论】:
-
传递一个引用可以让被调用的函数修改传递给它的变量(这与按值传递不同,函数只接收值的副本)。在您的情况下,按照函数名称,我假设
getCoefficients填充a, b, c,然后solveQuadratic接收这些系数(按值)并填充根x1, x2,最后是@987654326 @ 打印x1, x2值。 -
工作原理:语法黑魔法。编译器看到需要使用引用调用该函数,并生成适当的代码以使其发生,而无需任何进一步的用户干预。
-
我不认为这完全是上面链接的问题的重复。 OP 对在
main中传递值/引用感到困惑。 -
@AnukulSangwan 当关闭者归属于社区时,这意味着提问者自己批准了副本。
-
对不起,我根据问题中所写的内容发表了评论。
my question is I seem to be passing values to getCoefficients and solveQuadratic from main program but in the function definitions of getCoefficients and solveQuadratic, I seem to be accepting references as arguments and am confused as to how this works?
标签: c++