using System;
using static System.Console;
namespace Hello
{
class Calculation
{
public static int Calculate(params int[] a)
{
int answer = 0;
for(int i = 0; i < a.Length; i++)
{
answer += a[i];
}
return answer;
}
public static void Inputnumber(int[] a)
{
int k;
for(int i = 0; i < a.Length; i++)
{
k = int.Parse(ReadLine());
a[i] = k;
}
}
}
class Mainapp
{
static void Main()
{
int n = int.Parse(ReadLine());
int[] c = new int[n];
Calculation.Inputnumber(c);
WriteLine($"답은 {Calculation.Calculate(c)}입니다.");
}
}
}
메소드 공부 중인데 이게 왜 ref를 안 써도 값이 왜 제대로 계산이 되는지 잘 모르겠음..
일부러 틀린 예제 만든 담에 ref써서 고칠 생각이었는데 배열 같은 건 ref를 안 써도 다른 변수들에 ref쓰는 거하고 다르게 실제 값이 변하는거임?
애초에 참조형이라서~
C언어 포인터 공부해봤는진 모르겠는데 거기서 주소값을 넘기잖아? 그럼 주소에 접근해서 거기있는 값을 바꾸는게 되도록 하는거고
근데 주소값 자체를 바꿔버릴 순 없단말야? 결국 거기서도 참조에 의한 전달이 없는거임.
만약 c#에서 int를 ref로 전달한다고 하면 주소값을 전달하는것과 같은 역할이라 보면 되지. 근데 int같은 원시형은 그렇지만 참조형은 이미 힙에있는 데이터를 가리키는놈을 전달하는거거든
ref 없이 함수내에서 a = new int[] 하면 안될걸~?
아하 감사합니다
배열은 원시형이 아님
ㄳㄳ