using System;
class Program
{
static void AddTen(ref int num)
{
num = num + 10;
}
static void Main()
{
int x = 5;
AddTen(ref x);
Console.WriteLine(x);
}
}
문제
- 다음 코드의 실행 결과는?
- ref 키워드를 빼면 같은 코드의 실행 결과는 무엇일까요?
- (즉, AddTen(int num) 으로 바꾸고 호출할 때 AddTen(x)만 쓰면)
풀이
문제 1
num = num + 10; x 가 5 였으니까
5 + 10 해서 15 ref x 였으니까 이쪽 값도 바뀐다는 얘긴가?
그럼 콘솔에는 15가 출력
문제 2
문제 2 부터 ref 를 빼고 계산 메인에서 함수 AddTen 을 호출 ,
대입할 값은 x 야.
x = 5 , 5 + 10 은 15
num 값은 15
그런데 x 의 값은 변하지 않았으니까 콘솔에 출력될 값은 여전히 5
ref나 out은 사실상 리턴(return)처럼 값을 밖으로 전달하는 역할을 한다.
차이점은 return은 하나의 값만 돌려줄 수 있는데, ref/out은 여러 개의 값을 한 번에 바깥으로 전달할 수 있다.
'📖TIL' 카테고리의 다른 글
| 맨날 헷갈리는 구조체 (0) | 2025.09.11 |
|---|---|
| 맨날 헷갈리는 Enum (0) | 2025.09.11 |
| 250911 복습 (0) | 2025.09.11 |
| 250911 (0) | 2025.09.11 |
| IME ( 입력 메서드 편집기 ) (0) | 2025.09.10 |