enum 이름 {원소1, 원소2, ...}은 데이터형을 새로 정의하는대 사용한다.
그렇게 하면, 지정한 이름의 열거형이 새로 정의가 되고 원소 1을 0으로 시작하여 차례대로 값들이 부여된다.
enum 이름 {원소 1, 원소2 = 4, 원소 3 ...} 이런식으로 정의를 한다면 원소 1을 0으로 시작하여 차례대호 값이 대응되지만, 중간에 원소2 에 4를 대응 시킴으로서 0, 4 ,5 ...와 같은 순서로 값이 부여된다.
원소 2= 4 원소 5=4 같은 식으로 정의하면 0,4,5,6,4,5...같은 식으로 부여할 수 있다.
그렇다면, 열거형의 원소들은 부여받은 정수값을 통해 int 상수처럼 사용할 수 있을까?
그렇다. 하나의 상수처럼 사용할 수 있으며 따라서 다음과 같은 코드도 문제없이 작용한다.
enum music {pop, dance, hiphop, club, rock, classic, jazz};
int a = hiphop;
a에는 2가 들어간다.
그럼 반대로
music m = 3;
이것은 불가능하다. music 열거형에 int를 집어넣을려면 music열거형으로 변환시켜줘야 한다.
music m = music(3);
이러면 m은 club이 된다.
사실 그냥 왠만하면 정수를 쓰지 않고 직접 상수 이름을 입력해 주는게 안했갈리고 좋다
music m = club;
그리고 타자치기 귀찮아서 넘어갔지만 상수는 왠만하면 대문자로 선언해주자
enum music {POP, DANCE, HIPHOP, ROCK, CLASSIC, JAZZ};
그렇게 하면, 지정한 이름의 열거형이 새로 정의가 되고 원소 1을 0으로 시작하여 차례대로 값들이 부여된다.
enum 이름 {원소 1, 원소2 = 4, 원소 3 ...} 이런식으로 정의를 한다면 원소 1을 0으로 시작하여 차례대호 값이 대응되지만, 중간에 원소2 에 4를 대응 시킴으로서 0, 4 ,5 ...와 같은 순서로 값이 부여된다.
원소 2= 4 원소 5=4 같은 식으로 정의하면 0,4,5,6,4,5...같은 식으로 부여할 수 있다.
그렇다면, 열거형의 원소들은 부여받은 정수값을 통해 int 상수처럼 사용할 수 있을까?
그렇다. 하나의 상수처럼 사용할 수 있으며 따라서 다음과 같은 코드도 문제없이 작용한다.
enum music {pop, dance, hiphop, club, rock, classic, jazz};
int a = hiphop;
a에는 2가 들어간다.
그럼 반대로
music m = 3;
이것은 불가능하다. music 열거형에 int를 집어넣을려면 music열거형으로 변환시켜줘야 한다.
music m = music(3);
이러면 m은 club이 된다.
사실 그냥 왠만하면 정수를 쓰지 않고 직접 상수 이름을 입력해 주는게 안했갈리고 좋다
music m = club;
그리고 타자치기 귀찮아서 넘어갔지만 상수는 왠만하면 대문자로 선언해주자
enum music {POP, DANCE, HIPHOP, ROCK, CLASSIC, JAZZ};
댓글
댓글 쓰기