Sign in
or
Register
Courses
Textbook
Compiler
Contests
Topics
Courses
C#。 基本
子程序:过程和函数 - 1
Module:
子程序:过程和函数 - 1
Problem
11
/11
改变论点
Theory
Click to read/hide
任务
编写一个交换两个变量值的程序。
此任务的特殊性在于我们需要在过程中所做的更改才能为调用程序所知。
让我们尝试编写这样的程序:
static 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 = 1, y = 2 } 如果你运行这个程序,你可以看到 x 和 y 变量的值没有改变。为了使参数改变参数的值,必须使用按引用传递的数据。 为此,必须在标头中的数据类型名称前写上
ref
的子程序。
void Swap ( ref int a, ref int b ) // 现在变量 a 和 b 得到变量 x 和 y 在内存中的地址 { 诠释 c; c = 一个;一 = b; b=c; } 静态无效主要() { 诠释 x=1, y=2; 交换(参考 x,参考 y); 应用:如果你通过引用传递参数,那么在调用过程时只有变量的名称(不是数字也不是算术表达式)可以站在这个地方。
您不能调用这样的过程: <前> 交换(x,4); 交换(5+x,y);
Problem
编写一个交换两个变量值的程序。 找出并改正程序中的错误。
例子
<头>
#
输入
输出
东西> <正文>
1
1
2
2
1
表>
1000
ms
256 Mb
Rules for program design and list of errors in automatic problem checking
Teacher commentary