20140312 (리터럴 상수, 접미사, 아스키코드, 캐스팅, 서식문자, 특수문자)

18일차

----------------------

리터럴(Literal) 상수

----------------------

 

- 변수가 아닌 것 상수를 리터럴 상수라 함.

ex) int iNum = 3;    // 여기서 3이 리터럴 상수.

- int형으로 저장 가능한 것은 int형으로 약속하고

- double형으로 저장 가능한 것은 double형으로 저장하기로 약속했다.

 

----------------

접     미     사

----------------

- (리터럴) 상수 뒤에 써주는 것으로 상수의 자료형을 바꿀 수 있음.

확인 예제 소스

#include <stdio.h>

int main()
{
  printf("3 \t: %d \n"sizeof 3);
  printf("3LL \t: %d \n"sizeof 3LL);
  printf("3.14 \t: %d \n"sizeof 3.14);
  printf("3.14F \t: %d \n"sizeof 3.14F);

  return 0;
}
 

출력 화면

 

---------------------

아스키코드 (ASCII)

---------------------

- 영문자를 표기하기 위해 아스키코드 표를 만들어 그에 상응하는

숫자를 글자 형태로 출력시 영문자가 출력된다.

예제 소스코드

#include <stdio.h>

int main()
{
  char cCh1 = 'A';
  char cCh2 = 65;
  char cCh3 = 'Z';
  char cCh4 = 90;

  printf("%c %d \n", cCh1, cCh1);
  printf("%c %d \n", cCh2, cCh2);
  printf("%c %d \n", cCh3, cCh3);
  printf("%c %d \n", cCh4, cCh4);

  return 0;
}

출력 화면

따라서 문자도 컴퓨터 내에선 숫자로 취급한다.

- 0부터 31까지는 제어문자

- 65 = 'A'      - 90 = 'Z'       - 97 = 'a'     - 122 = 'z'

 

- 문자열이 아닌 문자 하나만 쓸 경우 char 형 말고 int 형으로 쓰는 것이

더 빠르다. 왜냐하면

 

-------------------

캐 스 팅 Casting

-------------------

- 묵시적 형변환

컴파일러가 어떠한 언급도 없이 형변환

두 가지로 나뉜다.

 

- down casting(하향식 형변환)

서로 크기가 안 맞을 경우 맞지 않는 부분 만큼 버림.

ex)

int iNum;

char cNum;

iNum = 257.9;

cNum = iNum;

이와 같이 소스를 짜면 iNum에는 257, cNum에는 1이 들어간다.

iNum에서는 뒤에 소수를 버리고 cNum은 257이 이진수로 1 0000 0001인데

1byte만 가져가므로 0000 0001 만 들어감.

 

- up casting(상향식 형변환)

데이터의 손실을 막기 위해 범위가 더 큰쪽으로 맞춘다.

ex)

dNum = 1 + 1.4;

1도 double형으로 바뀌어 1.4와 연산되어 dNum에 들어간다.

 

- 명시적 형변환

프로그래머가 알려서 바뀌는 것

ex)

int iNum1 = 3;

int iNum2 = 4;

double dNum;

dNum = (double)iNum1 / iNum2;

() 괄호는 casting 연산자라 부르고

결국 iNum1이 double형으로 승격하고

묵시적 변환으로 iNum2도 double형으로 승격되어 계산됨.

 

---------------------------

printf 서식 문자와 특수 문자

---------------------------

 

추가로 %출력은 %%이다.

 

 

 

 

 

 

 

 

설정

트랙백

댓글