Computer Science/C언어

[C언어] #3 변수와 자료형

꿈꾸는어린이 2018. 2. 4. 14:41

//

일시 : 2018.02.04 일

장소 : 답십리 도서관 13:00 ~ 14:30

내용 : C언어 콘서트 chap 3 변수와 자료형

//


변수(variable)

  • 변수 : 데이터들이 일시적으로 저장되는 공간 (데이터를 담는 상자).

    ​ 변수는 메모리(memory) 공간에 만들어짐.

  • 변수는 프로그램 도중 값을 변경할 수 있지만, 상수는 값이 한 번 정해지면 변경이 불가하다

  • 사용하기 전에 반드시 함수 시작 부분에서 미리 선언(declare) 해야 한다 -> declare를 하면 컴파일러는 변수의 자료형에 맞는 기억공간을 미리 확보. (미리 선언하지 않으면 컴파일 error)

  • 변수 초기화(initialization) : 변수 선언과 동시에 대입 연산자(=)를 이용하여 값 정의

    initialization 되지 않은 변수에는 쓰레기 값이 들어가게 됨.


자료형(data type, 데이터 타입)

자료형바이트 수
[정수형] (unsigned) short2
[정수형] (unsigned) int4
[정수형] (unsigned) long4
[문자형] char1
[부동소수점형] float4
[부동소수점형] double8
  • unsigned는 부호가 없는 자료형(양수만)으로 정수형에 붙을 수 있음.

    => 음수가 제외되어 같은 비트로 더 넓은 범위의 양수를 나타낼 수 있음

    예를 들면 short형의 범위는 -32768 ~ 32767 이지만

    unsigned short형의 범위는 0 ~ 65535까지의 정수를 나타낼 수 있음

  • sizeof 연산자 : 자료형의 크기를 알고 싶을 때 사용 -> 변수나 자료형의 크기를 바이트 단위로 반환

    sizeof(x) //변수

    sizeof(int) //자료형


정수형

  • short(16비트, 2바이트) <= int(32비트, 4바이트) <= long(32비트, 4바이트)

int형은 cpu가 한 번에 읽어 처리할 수 있는 비트의 크기과 관련. 최근 대부분의 컴퓨터는 32비트 cpu -> 일반적으로 int형은 32비트

  • short형은 -32768 ~ 32767 까지의 정수 표현 가능

    int형과 long형은 -21억 ~ 21억까지의 정수 표현 가능

정수 상수

  • 123L -> 정수123을 long형으로 간주하라.

  • 8진법으로 나타내려면 앞에 0 , (8진법 출력 위한 형식지정자 %o)

    16진법으로 나타내려면 앞에 0x (16진법 출력 위한 형식지정자 %x)

    16진수 하나의 자릿수는 4비트에 해당.

기호 상수(symbolic constant)

  • 기호로 상수를 표현한 것

  • 프로그램 가독성 ↑

  • 동일 상수를 여러 곳에서 사용할 경우 상수 값의 변경이 쉬움


  1. #define문장 사용 -> 컴파일러 동작 전 전처리기가 처리

    #define EXCHANGE_RATE 1120

  2. const 키워드 사용 -> const가 붙은 변수는 초기화 후에 값 변경 x

    const int EXCHANGE_RATE = 1120;



부동소수점형

  • float(32비트) <= double(64비트)

  • 고정소수점(fixed-point) 방식은 소수점 위치를 고정시키고 정수 부분 일정 비트 할당, 소수 부분 일정 비트 할당하는 방식. -> 간단하지만 매우 큰 수 표현 불가

  • 부동소수점(floating-point) 방식을 통해 더 넓은 범위의 실수를 표현함.

  • 실수를 가수(1~10사이의 값)와 지수로 나누어서 표현

    ex ) 1490000 = (가수) x (지수)

  • 소수점 표기법 123.456 -> 지수 표기법 1.23456e2 (1.23456x)

    0.000023 -> 2.3e-5 (2.3x)

  • 부동소수점 상수는 기본적으로 double형으로 저장.

    float형으로 만들려면 3.14F



오버플로와 언더플로

  • 오버플로(overflow) : 변수가 나타낼 수 있는 범위를 넘는 숫자를 저장할 때 발생.

    -> short형 최대값인 32767에 1를 더하면 다시 처음으로 돌아가 -32768이 됨

  • 언더플로(underflow) : 부동소수점 수가 너무 작아서 표현하기 힘든 상황.



문자형

  • A는 65, a는 97

  • 아스키(ASCII)코드 : 문자를 숫자로 나타내는 규격. 0~127까지의 숫자 이용.

  • C언어에서는 문자를 아스키코드 정수로 저장되기 때문에 문자를 아스키코드로 변환할 필요가 없다

     
  • 문자뿐 아니라 작은 정수값도 저장 가능.(unsigned 수식어도 사용 가능)



제어문자

  • 이스케이프 시퀀스(escape sequence)

  • 대표적 \n, \t, \0(널문자)

  • 특수한 기능을 가진 문자 앞에 \ 역슬래쉬 위치시키면 특수 기능 사라짐.




실습

  • 달러화를 원화로 계산하는 프로그램 (환율은 1120원으로 가정)

 

  • 제어문자 연습

 


  • 다항식 계산

 

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

[C언어] #2 C언어 기초사항  (0) 2018.02.03
[C언어] #1 C 프로그래밍 소개  (0) 2018.02.03