ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C] 자료형과 변수
    C 2023. 3. 1. 17:58

     

     

     

    1. 프로그래밍 기초

     

    한 프로젝트는 단 하난의 함수 main()과 다른 여러 함수로 구현되며, 최종적으로 프로젝트 이름으로 하나의 실행 파일이 만들어진다.

     

     

    C 프로그래밍 소스의 구조

    전처리 → 외부선언 → 함수 main() → 기타 함수구현

    • 전처리 : 전처리 지시자
      • #include <stdio.h>
      • #define PI 3.14
    • 외부선언 : 함수 및 자료형, 변수 선언
      • typedef int my_int
      • void funtion(int, double)
    • 함수 main : 기본 함수인 main() 구현
      • /*블록 주석*/
      • //한 줄 주석
      • 문장; 블록{}
      • 함수호출()
    • 기타 함수구현 : 필요 다른 함수 구현
      • 지역변수 선언
      • 매개변수 사용

    C 프로그램은 적어도 main() 함수 하나는 구현되어야 응용 프로그램으로 실행될 수 있다.

    main() 함수 : 프로그램이 실행되면 가장 먼저 시작되는 부분

     

    예약어(reserved word) or 키워드 : 문법적으로 고유한 의미를 갖는 예약된 단어

    ex) int, long, return, sizeof, void, double, else, while, char, const 등

     

    식별자 : 프로그래머가 직접 정의해서 사용하는 단어 / 함수 이름, 변수 이름 등

    1. 숫자는 맨 앞에 올 수 없다.
    2. 대소문자는 구별된다.
    3. 중간에 공백문자(space)가 들어갈 수 없다.
    4. 키워드는 식별자로 사용할 수 없다.
    5. 알파벳과 _를 제외한 문자는 사용할 수 없다.

     

    문장(statement) : 프로그래밍 언어에서 컴퓨터에게 내리는 최소 단위, 문장은 마지막에 세미콜론;으로 종료

    • 프로그램 이해에 도움이 된다면 한 줄에 여러 문장의 입력도 가능하다.

    블록(block) : 여러 개의 문장을 묶은 것, 중괄호(curly brace)로 열고 닫음

    들여쓰기(indentation) : 블록 내부에서 문장들을 탭(tab) 키로 한 스텝만큼 오른쪽으로 들여 쓰는 소스 작성

    주석(comment) : 일반 문장과 달리 프로그램 내용에는 전혀 영향을 미치지 않는 설명문

    • 한줄 주석 : //
    • 블록 주석 : /* ··· */  (중첩된 주석은 사용할 수 없다.)

     


     

    2. 자료형과 변수선언

     

    자료형(data type) : 프로그래밍 언어에서 자료를 식별하는 종류

     

    변수(variables)

    - 정수와 실수, 문자 등의 자료값으로 저장하는 저장 공간

    - 변수에는 고유한 이름이 붙여지며, 물리적으로 기억장치인 메모리에 위치한다.

     

    저장공간인 변수의 특징

    1. 변수는 자료형을 갖고, 선언된 자료형에 따라 변수의 저장공간 크기와 저장되는 자료값의 종류가 결정된다.
    2. 저장되는 값에 따라 변수값은 수정할 수 있으며
    3. 제일 마지막에 저장된 하나의 값만 저장 유지된다.

     

    변수선언 : 컴파일러에게 프로그램에서 사용할 저장 공간인 변수를 알리는 역활, 프로그래머 자신에게도 선언한 변수를 사용하겠다는 약속의 의미가 있다.

    • 변수는 관습적으로 소문자 사용
    • 하나의 문장으로 세미콜론으로 종료
    • 변수선언 이후에는 지정한 변수 이름으로 값을 저장하거나 값을 참조

    변수 선언 위치

    변수를 사용하기 전에만 변수를 선언

    자료형을 이용한 변수선언
    double height;
    여러 변수를 하나의 문장으로 선언
    int height;		// 변수 height를 int 자료형으로 선언
    int weight;
    int waist;
    저장 값 대입
    int age;	→ 변수선언문 : 메모리에 int 자료형을 저장할 수 있는 공간을 이름 age로 확보
    age = 20;	→ 대입문 : 이름이 age인 저장공간에 자료값 정수 20을 저장하는 문장

     

    변수 초기화

    변수를 선언만 하고 자료값에 아무것도 저장하지 않으면

    • 원치 않는 값이 저장되고 오류가 발생
    • 변수를 선언한 이후에는 반드시 값을 저장
    변수선언 이후 초기화
    int year;
    year = 2023;
    
    _
    
    변수선언 및 초기화
    int year = 2023;

     


     

    3. 기본 자료형

     

    • 기본 자료형 : 정수형, 실수형, 문자형, 무치형
    • 유도 자료형 : 배열, 포인터, 함수
    • 사용자 정의 자료형 : 열거형, 구조체, 공용체

     

    - 정수형 : int, short, long

    • 기본 키워드 int : 365, 1024, 030, 0xF3과 같이 10진수, 8진수, 16진수의 정수가 다양하게 저장
    • short와 long : 정수형 int에서 파생된 자료형
    • signed 자료형 : [부호가 있는]을 의미하는 signed 키워드는 정수형 자료형 키워드 앞에 표시, signed 키워드 생략 가능
      • 음수, 0, 양수를 모두 지원
      • signed int == int
    • unsigned 자료형 : 부호가 없는 정수인 unsigned는 0과 양수만을 저장할 수 있는 정수 자료형, 자료형 unsigned int에서 int는 생략 가능
      • 0과 양수만을 지원
      • unsigned int == unsigned 

    정수형 저장공간

    음수지원 여부 자료형 크기
    부호가 있는 정수형
    signed
    signed short 2 byte
    signed int 4 byte
    signed long 4 byte
    부호가 없는 정수형
    unsigned
    unsigned short 2 byte
    unsigned int 4 byte
    unsigned long 4 byte

    * 1byte = 8bit

     

     

     

    - 부동소수형 : float, double, long double

    • double형은 float형보다 표현범위가 같거나 보다 정확
    • long double형은 double형보다 표현범위가 같거나 보다 정확

    부동소수형 저장공간

    자료형 크기 정수의 유효자릿수
    float 4 byte 6~7
    double 8 byte 15~16
    long double 8 byte 15~16

    * 1byte = 8bit

     

     

     

    - 문자형 : char, signed char, unsigned char

    •  문자형 자료공간에 저장되는 값은 실제로 정수값이며, 이 정수는 아스키 코드 표에 의한 값이다.
    • 키워드 signed와 unsigned를 함께 이용 가능

    문자형의 표현범위

    자료형 저장공간 크기 표현범위
    char 1 byte -128에서 127까지 (문자는 실제 0에서 127까지 이용)
    signed char 1 byte -128에서 127까지
    unsigned char 1 byte 0에서 127까지

     

     

    - 아스키 코드(ASCII: American Standard Code for Information)

    • (ASCII: American Standard Code for Information)에서 제정한 정보 교환용 표준 코드
    • 총 127개의 문자로 구성

    • 기본 자료형은 long long을 포함하면 모두 14가지
    • 연산자 sizeof를 이용하면 자료형, 변수, 상수의 저장공간 크기를 byte 단위로 알 수 있다.
    sizeof(char)	// sizeof(자료형키워드), 괄호가 반드시 필요
    sizeof 3.14		// sizeof 상수, sizeof(상수) 모두 가능
    sizeof n		// sizeof 변수, sizeof(변수) 모두 가능

    - 오버플로(overflow) or 언더플로(underflow)가 발생 

    • 자료형의 범주에서 벗어난 값을 저장

     


     

    4. 상수 표현방법

     

    - 상수 : 이름 없이 있는 그대로 표현한 자료값이나 이름이 있으나 정해진 하나의 값만으로 사용되는 자료값

    • 리터럴 상수 : 이름이 없이 소스에 그대로 표현해 의미가 전달되는 다양한 자료값
    • 심볼릭 상수 : 리터럴 상수와 다르게 변수처럼 이름을 갖는 상수
      • 심볼릭 상수 표현 방법 : const 상수(const constant), 매크로 상수(macro constant), 열거형 상수(enumeration constant)

     

    - 상수의 종류

     

    - 문자 상수

    • 문자 하나의 앞 뒤에 작은따옴표(single quote)를 넣어 표현
    • \ddd
      • 세 자리까지의 8진수 코드 값  (ex : 문자 'A'는 '\141')

     

    - 이스케이프 문자 : 역슬래쉬 \와 문자의 조합으로 표현하는 문자

    ex) \n, \t, \, \a, \\ 등

     

    - 심볼릭 const 상수

    const : 변수선어 시 자료형 또는 변수 앞에 키워드 const가 놓이면 이 변수는 심볼릭 상수가 된다.

    • 상수는 반드시 초기값을 저장해야 한다.

     

    - 열거형 상수

    enum : 정수형 상수 목록 집합을 정의하는 자료형

    키워드 enum으로 열거형 정수상수 목록 만들기
    
    enum DAY{SUN, MON, TUE, WED, THU, FRI, SAT};
        	  0    1    2    3    4    5    6
              
    enum 열거형태그명 {열거형상수1, 열거형상수2, 열거형상수3, ··· };
                            0            1            2
    열거형상수 : 열거 상수 목록으로 순서대로 0, 1, 2 등으로 정의된다.

    열거형 상수에서 목록 첫 상수의 기본값이 0이며 다음부터 1씩 증가하는 방식으로 상수값이 자동으로 부여된다.

     

    매크로 상수

    전처리기 지시자 #define : 상수를 정의하는 지시자

     

     

    'C' 카테고리의 다른 글

    [c] 조건  (0) 2023.03.29
    [C] 연산자①  (1) 2023.03.22
    [C] 전처리와 입출력  (1) 2023.03.17
    [C] QUIZ  (0) 2023.03.15
    [C] C 프로그래밍 첫걸음  (4) 2023.03.08
Designed by Tistory.