변수(variable)
- 데이터를 저장할 수 있는 메모리 공간
- 프로그램 실행 도중 변할 수 있는 값이 저장되는 기억공간 (상수와 반대)
- 특징
- 모든 변수는 이름이 있음 (변수명)
- 모든 변수는 정해진 자료형이 있음
- 모든 변수는 할당된 값을 갖음
- 규칙
- 사용되기 전에 선언되어 있어야 함
- 첫 문자 : 반드시 영문자 or 밑줄(_)
- 중간에 숫자, 밑줄(_) 사용 가능
- 밑줄 이외의 특수문자 사용 불가능
- 예약어 사용 불가능
- 대소문자 구분
- 전역변수
- 함수 외부에서 선언된 변수 → 프로그램 어디에서나 사용 가능
- 항상 존재하는 자료 영역에 저장됨
- 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
- 기본형: char
- 열거형
- 키워드 : 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 |