변수(variable)

  • 데이터를 저장할 수 있는 메모리 공간
  • 프로그램 실행 도중 변할 수 있는 값이 저장되는 기억공간 (상수와 반대)
  • 특징
    • 모든 변수는 이름이 있음 (변수명)
    • 모든 변수는 정해진 자료형이 있음
    • 모든 변수는 할당된 값을 갖음
  • 규칙
    1. 사용되기 전에 선언되어 있어야 함
    2. 첫 문자 : 반드시 영문자 or 밑줄(_)
    3. 중간에 숫자, 밑줄(_) 사용 가능
    4. 밑줄 이외의 특수문자 사용 불가능
    5. 예약어 사용 불가능
    6. 대소문자 구분
  • 전역변수
    • 함수 외부에서 선언된 변수    프로그램 어디에서나 사용 가능
    • 항상 존재하는 자료 영역에 저장됨
    • 0으로 자동으로 초기화 됨
  • 지역변수
    • 함수 내부에서 선언된 변수 → 함수 내부에서만 사용 가능
    • 임시 기억공간인 스택 영역에 저장됨
    • 함수의 실행이 끝나면 소멸됨
    • 자동으로 초기화되지 않음

상수(constant)

  • 데이터를 저장할 수 있는 메모리 공간
  • 항상 고정된 값을 갖는 자료, 즉 한 번 지정된 값은 변경할 수 없는 수
  • 리터럴 상수(literal constant)
    • 글자 그대로의 의미가 있는 상수 (이름 없음)
    • 정수형 상수 
      구분 비고
      10진 상수 10, -10, 999 0~9의 숫자
      8진 상수 011, 055 0~7의 숫자, 숫자 앞에 0
      16진 상수 0xac, 0X2A 0~9의 숫자 + A~F의 문자, 숫자 앞에 0x
      unsigned형 상수 12u, 067u 부호 없는 상수, 숫자 뒤에 U or u
      long형 상수 123456l, 0XFFL 큰 길이의 정수, 숫자 뒤에 l or L
    • 실수형 상수
      구분 비고
       소수 형식  12.345, .5 소수점 사용
       지수 형식 12E3(=12000), 5e-2(=0.05)  10진수 + e(E)
       float형 상수  3.14f, 3.14F 숫자 뒤에 f or F
       long double형 상수 (기본값)  3.14l, 3.14L 숫자 뒤에 l or L
    • 문자형 상수
      • 단일 인용부호('')로 묶여 있는 1개의 영문자나 숫자문자
      • ASCII 코드값 사용
      • 예) 'A' == 65
      • escape 문자 : 키보드에 나타나 있지 않은 문자
        escape 문자 기능
        \a 경고음(alert) 출력
        \b 백스페이스(back space)
        \f 새 페이지(form feed)
        \n 출력 시 줄 바꿈(new line)
        \r 커서를 행의 시작 위치로 이동(carrige return)
        \t 수평 탭(horizontal tab)
        \0 ASCII 코드값이 0인 문자(null 문자)
    • 문자열 상수
      • 이중 인용부호("")로 묶여 있는 복수 개의 영문자와 숫자로 이루어진 상수
      • 기억공간에는 문자열 끝에 null 문자('\0')이 추가되어 보관됨
    • 예) 123 (정수형 상수), 3.14 (실수형 상수), 'a' (문자형 상수), "SEOUL KOREA" (문자열 상수)
  • 심볼릭 상수(symbolic constant)
    • 데이터를 기호화하여 변수처럼 사용하는 상수 (이름 있음)
    • 반드시 선언과 동시에 초기화가 되어야 함
    • const 키워드 사용 / 매크로 이용
    • 예) const int MAX = 10; (const), #define MAX 10; (선행처리기를 이용한 매크로)

자료형(data type)

  • 사용하는 자료의 형태
  • 컴파일러가 기억공간을 마련하는 데사용하느 자료의 종류나 크기 등의 특징을 나타냄
    기본형 정수형 (integer type) int, short, long, unsigned
    실수형 (floating-point type) float, double, long double
    문자형 (character type) char, unsigned char
    열거형 (enumerated type) enum
    형 없음 void
    확장형 배열형 (array type)
    함수형 (function type)
    포인터형 (pointer type)
    구조체형 (structure type)
  • 정수형
    • 기본형: int
    • 반드시 사용하고자 하는 데이터의 크기를 고려해야 함 - 언더플로우(underflow), 오버플로우(overflow) 발생 방지
    • 크기에 따라 'short', 'long' / 부호에 따라 'signed', 'unsigned' 붙일 수 있음
      정수형 타입 크기 범위
      (signed) short 2 바이트 -32,768 ~ 32,767
      unsigned short 2 바이트 0 ~ 65,535
      (signed) int 4 바이트 -2,147,483,648 ~ 2,147,483,647
      unsigned int 4 바이트 0 ~ 4,294,967,296
      (signed) long 4 바이트 -2,147,483,648 ~ 2,147,483,647
      unsigned long 4 바이트 0 ~ 4,294,967,296
      (signed) long long 8바이트 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
      unsigned long long 8바이트 0 ~ 18,446,744,073,709,551,615
  • 실수형
    • 기본형: double
    • 부동 소수점 표현 방법(실수와 소수점을 2진수로 표현) 사용 - IEEE 754 규약
      실수형 타입 크기 범위
      float 4 바이트 (3.4 X 10의 -38제곱) ~ (3.4 X 10의 38제곱)
      double 8 바이트 (1.7 X 10의 -308제곱) ~ (1.7 X 10의 308제곱)
      long double 8 바이트 (1.7 X 10의 -308제곱) ~ (1.7 X 10의 308제곱)
  • 문자형
    • 기본형: char
      문자형 타입 크기 범위
      (signed) char 1 바이트 -128 ~ 127
      unsigned char 2 바이트 0 ~ 255
    • 문자 하나를 표현하는 자료형
    • ASCII 코드 사용
      • 대문자 A~Z : 65~90
      • 소문자 a~z : 97~122
      • 숫자 0~9 : 48~57
    • 예) Korea 저장 방식
      K o r e a \0
      75 111 114 101 97 0
  • 열거형
    • 키워드 : enum
    • 형식 : enum 태그명 {열거자 1, 열거자 2, ...}
    • 변수가 가질 수 있는 값을 나열해 놓은 것
    • 열거자는 int형 상수
    • 열거자의 기본값 : 첫번째는 0, 이후부터는 이전 원소의 값 +1
    • 예) enum day {SUN, MON, TUE, WED, THU, FRI,SAT}; enum day d1, d2; (enum day형인 변수)

변수의 선언과 초기화

  • 변수 선언 : 변수명과 변수가 가질 자료형을 지정하여 변수를 위한 기억공간을 할당하는 것
    • 변수 선언 형식 : 자료형 변수명;
    • 예) int 변수명; float 변수명;
  • 변수 초기화 : 선언된 변수에 특정 값을 부여하는 것
    • C언어에서는 변수가 초기화되지 않으면 에러가 발생할 수 있음
    • 초기화되지 않은 변수에는 기억공간에 존재하고 있던 기존의 값(쓰레기값)이 있기 때문이다.
    • 예) 변수명 = 데이터값;
  • 변수 선언과 초기화를 동시에 하는 방법
    • 변수는 선언과 초기화를 동시에 할 수 있음
    • 선언하고자 하는 변수들의 타입이 같다면 여러 변수를 동시에 선언 및 초기화 가능
      구분 여러 변수 선언 여러 변수 선언 및 초기화
      형식 자료형 변수명[, 변수이름]; 자료형 변수명 = 초기값[, 변수명 = 초기값];
      예시 int num01, num02; double num03 = 1.23, num04 = 4.56; 

참고자료

[도서]

- C 프로그래밍 (저자 김형근, 곽덕훈, 정재화 / 2020 발행)

 

[웹사이트]

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

 

 

 

'C > C' 카테고리의 다른 글

[C언어] 연산자(operator)  (0) 2024.12.26
[C언어] 선행처리기(preprocessor)  (0) 2024.12.19
[C언어] 정의 및 구조  (0) 2024.12.17

+ Recent posts