티스토리 뷰
// 뇌를 자극하는 C# 5.0 프로그래밍 연습문제 답 - 3장
1. 다음 코드에서 잘못된 부분을 찾고, 그 이유를 설명하세요.
int a = 7.3; // 데이터 타입 안맞음
float b = 3.14; // float 형식은 3.14f (f 붙여줌)
double c = a*b;
char d = "abc"; // 문자열은 string
string e = '한; // 문자는 char
2. 값 형식과 참조 형식의 차이는 무엇인가요?
-값 형식(Value Type) : 변수가 값을 담는 데이터 형식 ex) 숫자형식, 논리형식
-참조 형식(Reference Type) : 변수가 값 대신 값이 있는 곳의 위치(참조)를 담는 데이터 형식 ex) 문자열, 오브젝트 형식
3. 박싱과 언반싱을 설명하세요.
object a = 20; // 박싱
int b = (int)a; // 언박싱
위와 같이 object 형식에 값 형식의 데이터를 할당하려는 경우 박싱을 수행 - 해당 데이터(20)이 힙에 할당되고, a는 그 주소를 참조
반면, 힙에 있던 값 형식의 데이터를 값 형식의 객체에 다시 할당하는 경우, 즉 위에서 b에 a 값을 저장하려고 하는 경우 힙에 저장된 20을 꺼내서(언박싱) 값 형식 변수(b)에 저장한다
4. 다음과 같이 사용자로부터 사각형의 너비와 높이를 입력받아 넓이를 계산하는 프로그램을 완성하세요.
namespace RectArea
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("사각형의 너비를 입력하세요.");
string width = Console.ReadLine();
Console.WriteLine("사각형의 높이를 입력하세요.");
string height = Console.ReadLine();
int result = int.Parse(width) * int.Parse(height);
Console.WriteLine(result);
}
}
}
5. 다음 코드를 컴파일한 후의 a와 b는 각각 어떤 데이터 형식이겠습니까?
var a = 2020;
var b = "double";
a는 int형, b는 string 형