Module: (C++) 子例程:过程和函数 - 1


Problem

12/12

改变论点

Theory Click to read/hide

任务
编写一个交换两个变量值的程序。

此任务的特点是我们需要在过程中所做的更改才能为调用程序所知。

让我们尝试编写这样的程序: void Swap ( int a, int b ) // 带有这样的过程参数描述, { // 参数(x 和 y)的值将被复制, 诠释 c; // 变量 a 和 b 是与 x 和 y 无关的自变量 c = 一个;一 = b; b=c; } 主要的() { 诠释 x=1, y=2; 交换(x,y); // 变量x和y(参数)的值被复制到参数a和b中 输出 << “x=” << x<< ", y=" <<是; // x=1, y=2 } 如果你运行这个程序,你可以看到变量xy的值没有改变。为了使参数改变参数的值,您必须使用通过引用传递数据。 为此,在数据类型名称之后在子例程的标题中,您必须放置符号 & ("ampersand")。 无效交换 ( int & a, int & b ) // 现在变量 a 和 b 得到变量 x 和 y 在内存中的地址 { 诠释 c; c = 一个;一 = b; b=c; } 用法:如果您通过引用传递参数,那么在调用过程时只有变量名(不是数字也不是算术表达式)可以出现在这个地方!< br />
不要调用这样的过程: 交换(x, 4 ); 交换(5+x, y);

Problem

编写一个程序,交换两个变量的值。尝试在不使用额外变量的情况下编写它。如有错误请改正。