티스토리 뷰

C언어

[C언어]상수(리터럴) 형변환

란텔 2014. 2. 28. 16:45

○ 상수
      상수
변경이 불가능한 값이다


  int no = 30;

30이라는 값 자체를 이름없는 상수 혹은 리터럴이라고 한다.

30이라는값 자체도 상수로써 메모리 공간에 할당된다.(하지만 변수 no과는 다르게 메모리상에 할당된 이름은 없다.)




상수도 변수로써 표현 가능(const 키워드)


 const int NO = 30;

자료형의 앞에 const키워드를 붙이면 상수형 변수가 된다.(값이 한번 정해지면 변경할 수 없는 변수)



const int NO;

NO = 100; //불가함 

위의 표현은 불가능 하다. 컴파일 하게되면 NO이라는 상수형 변수는 컴파일러에 의해 쓰레기 값으로 초기화가 되고, 그 자체로 값의 변경이 불가능해지기 때문이다.




○ 형변환 

- 형변환이라는 것은 자료형의 변환을 뜻 한다.

- 형변환은 자동 형 변환, 강제 형 변환 으로 구분한다.

- 자동 형 변환은 프로그램 실행시 자동으로 발생하는 형변환이고, 강제 형 변환은 프로그래머가 명시하여 강제로      변환이 일어나게 하는 것이다.



 예1) int no = 255.14;


 예2) double no = 255;


 예3) char no = 129;


예1)에서는 실수형 값을 정수형 변수에 값을 넣으려고 하기 때문에 형변환이 되서 소수점 이하의 값이 소실되어 int형 변수에 저장된다.

예2)에서는 정수형 값을 실수형 변수에 대입하려 하고 있다. 이 경우는 실수형의 자료형이 데이터 표현범위가 더 넓기 때문에 값의 소실이 발생되지 않는다.

예3)에서는 char형의 변수에 129라는 정수를 대입하려고 한다. 하지만 char형은 1바이트 자료형이기 때문에 데이터의 표현범위(-127~128)에 129라는 값이 포함되지 않기 때문에 '상위 바이트의 손실'이 발생된다. 결과는 -127이 된다.

'C언어' 카테고리의 다른 글

포인터와 const와의 관계, 포인터와 2차원 배열  (0) 2014.05.25
[C언어] 배열  (0) 2014.03.02
C언어에서 사용되는 서식문자 종류  (1) 2014.02.26
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday