using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Languages
{
class Program
{
void Fixer(out int x, int index)
{
x = 1;
index = 1;
}
static void Main(string[] args)
{
Program f = new Program();
int index;
int[] list = new int[2];
list[0] = 100;
list[1] = 200;
index = 0;
Console.WriteLine("초기 배열값");
Console.WriteLine("{0}, {1}", list[0], list[1]);
f.Fixer(out list[index], index);
Console.WriteLine("부프로그램 종료시 결정된 주소에 따른 인덱스값 변화");
Console.WriteLine("{0}, {1}", list[0], list[1]);
}
}
}
문제가 출력모드의 매개변수의 주소가 언제 계산되는지 결정하는 C#프로그램이나 Ada프로그램을 작성하라(호출시 또는 부 프로그램 종료시).
이렇게 돌리면 결과값은 list[0]에 있는값이 1로 바뀌거든. 그러니까 배열 주소가 메소드 진입시 결정되서 반환된거라던데
요게 메소드 내부에서 인덱스 값이 바뀌면 index값이 0이 아닌 1로 배정되고나서 list[1]의 값이 바뀌게 할수 있냐 물어보는거 같은데
이게 어떤 개념으로 하는건지, 혹 안된다면 왜 안되는건지 풀이해줄수 있는 횽 있어?
되나?-_- out index해야되는거 아닌가\'\'그래두안되나?\'\'ㅋ
당근 해봤징 책에서는 구현자가 실 매개변수의 주소평가를 2개의 다른시점중에서 하나를 선택할수 있다던데 그거 한줄만 나와있고ㅡㅡ.... 아 책 개같네 진짜
2개의 다른 시점이 함수 호출시 또는 부프로그램 종료시(반환시)
그냥 out 안쓰고 ref로 하면 될려나
아 그거 ref..내가 말한게 ref이거였어\'\'-_-
질문을 바보같이 하니 답을 제대로 하겄냐 [i]