가. 상수와 변수
1. 상수
1) 자료형 : 사용하는 자료의 형태.
- 프로그램에서 사용하는 자료의 형태로 상수와 변수로 구분하여 사용.
- 프로그램에서 자료 처리를 위해서는 자료 생성과 저장,처리과정 필요
- C프로그램은 수많은 명령어와 자료로 구성됨.
- 이들 자료의 정확한 처리와 효율적인 활용이 필요
- C언어는 여러가지 종류의 자료형을 지원
2) 상수
- 항상 고정된 값을 갖는 자료
- 값이 한번 정해지면 프로그램 도중 그 값을 변경이 불가함.
(1)정수형상수 : 10진수, 8진수, 16진수로 표현,
(2) 실수형 상수 : 부동소수점 형 상수, doble형을 기본 자료형으로 사용
(3) 문자형 상수
- 단일 인용부호 (' ')로 묶여 있는 1개의 영문자나 숫자문자
- 내부적으로는 해당문자의 ASCII 코드값이 사용
- 예를 들어 'A'는 내부ㅈ적으로 65(ASCII코드값)가 된다.
- Escape 문자 : 키보드에 나타나 있지 않은 문자.
(4) 문자열 상수
- 이중 인용부호 (" ")로 묶여 있는 복수개의 영문자나 숫자문자
- 기억공간에 보관될 때는 문자열 끝에 null 문자 (\0)가 추가
- 예) 문자열 "SEOUL KOREA"의 기억공간 보관 형태 -> SEOUL(_)KOREA(\0) = 공백과 null까지 12개의 기억공간 소요.
2. 변수(variable)
1) 변수
- 변할 수 있는 값
- 프로그램에서 변수는 프로그램 실행 도중 변할 수 있는 값이 저장되는 기억공간을 의미.
- 예) i=10;은 i는 변수명이고, 10이란 값을 i라는 이름으로 정의된 기억공간에 저장한다는 의미.
- 이러한 변수 속에 들어가는 값은 수시로 변경이 가능하다.
* 따라서 변수는 사용 전에 반드시 선언하여 컴파일러가 기억공간에서 일정공간을 확보할 수 있도록 해야함
(1) 변수의 특징
- 모든 변수는 이름이 있다 (변수 명)
- 모든 변수는 정해진 자료형이 있다.
- 모든 변수는 할당된 값을 갖는다
(2) 변수명의 정의 규칙
- 모든 변수는 사용 전 반드시 선언되어야 한다.
- 변수명은 반드시 영문자나 밑줄(_)로 시작해야 한다.
- 변수명은 중간에 숫자와 밑줄을 섞어서 명명할 수 있다
- 변수명은 밑줄 외 특수문자 기입이 불가하다.
- 변수명은 대,소문자를 구별하여 사용한다.
- 변수명은 예약어를 사용할 수 없다.
(3) 사용 예
나. 자료형과 변수 선언
1. 변수와 변수선언
1) 변수 : 자료를 저장할 기억공간을 확보, 이 공간에 이름을 붙인 것
2) 변수 선언 : 확보된 기억공간에 이름을 부여하는 것 (필수적)
- 이러한 변수 선언을 위해 자료형이 필요
2. 자료형
1) 자료형의 종류
가. 기본형
(1) 정수형 (integer type)
- int, short, long, unsigned
- 운영체제에 따라 표현범위가 다름.
(2) 실수형 (flating-point type)
- float, double, long double
- 기본형은 double
(3) 문자형 (character type)
- char, unsigned char
- ASCII 코드를 사용하여 처리
(4) 열거형 (enumerated type)
- 숫자 대신 단어 사용
- 형식 : enum 태그명 {열거자1, 열거자2...}
(5) 형 없음
나. 확장형
(1) 배열형 (array type)
(2) 함수형 (function type)
(3) 포인터형 (pointer type)
(4) 구조체형 (structure type)
3. 변수선언
1) 정의 : 변수명과 변수가 가질 자료형을 지정하여 변수를 위한 기억공간을 할당하는 것.
2) 고려사항
- 변수에 저장될 값의 크기(범위)
- 변수의 선언 위치
: 변수를 함수 외부에 선언(전역변수로 선언)
/ 변수를 함수 내부에 선언(지역변수로 선언, 특정지역내에서만사용)
- 변수의 초기화
* 초기화 : 선언된 변수에 특정 값을 부여하는 것.
다. 선행처리기
1. 선행처리기
1) 정의 : 컴파일에 앞서 프로그램 선두에 선언된 지시자에들을 미리 처리하는 역할 수행.
- 컴파일 하기 전에 미리 수행되어야 할 처리기.
2) 선행처리기 사용시 주의점
- 반드시 #로 시작
- 명령문 끝에 세미콜론(;) 붙이지 않음
- 한줄에 하나의 명령만 씀
- 소스 프로그램 첫 부분에 위치 (도입부)
2. 종류
1) 파일포함 - #include
- C언어에서 제공되는 헤더파일(*.h)를 자신의 소스파일에 읽어 들여 함께 컴파일 하고자 할 때 사용
- C프로그램에서 표준함수인 printf(), scanf()등을 사용하려면 이
함수들의 원형(proto type)이 선언되어 있는 표준 입출력 헤더파일인 stdio.h를 #include 해야함.
* 형식 : #include <파일명>
#include "파일명"
* 사용예 : #include <stdio.h>
#include "stdio.h"
#include "\tc\lib\math.h"
* 기능 : #include 다음에 제시된 파일을 현재 프로그램에 포함시킴.
- <파일명>은 표준 디렉토리(보통 include 디렉토리)에서 파일을 찾아 포함.
- "파일명"은 현재 사용중인 디렉토리나 지정된 디렉토리에서 파일을 찾아 포함하며, 또는 드라이브나 경로를 사용.
2) 매크로 정의 - #define
- 매크로 정의시 사용
- 매크로 : 선행처리기 #define를 사용하여 단순 치환되는 자료, 프로그램 작성 시 명령이나 수식
또는 상수값이 자주 사용될 때 이를 대표하는 이름을 붙여 사용하는 대상
- 매크로 정의 : 상수 / 함수
(1) 매크로 상수 정의
* 형식 : #define 매크로명 자료
#undef 매크로명
* 사용예 #define PI 3.141592 ----> 프로그램 내의 PI는 3.141592로 치환하라
* 기능 : 프로그램에 나오는 매크로명을 지정한 자료로 치환한 후 컴파일(#define)하거나, 정의를 해제(#undef)한다.
(2) 매크로 함수 정의
- 인수 정의시 괄호 사용 -
* 형식 : #define 매크로명(인수) (수식)
#define 매크로명(인수,인수) (수식)
* 사용예 : #define AREA(x) (3.141595*(x)*(x))
#define HAP(a,b) (a+b)
* 장점 : 선행처리기에 의한 단순 치환 방식이므로, 전달인자의 자료형을 명시할 필요가 없고,
또 어떠한 자료형 변수를 인자로 전달해도 잘 동작하며 한 두줄의 코드인 경우 함수로 정의하는 것보다 속도가 빠르다.
(3) 조건부 컴파일
- 조건에 따라 프로그램을 컴파일하는 명령
- 최적의 코드로 프로그램을 작성할 수 있기때문에 시스템의 성능 향상
* #if와 #elif 다음에는 컴파일 여부를 결정하는 조건문 필요
- 조건문은 선행처리과정에서 진위 여부를 판단할 수 있어야 함
- 변수 지정이나 함수 호출 불가
- 주로 매크로 값이 사용
'공부정리 및 기록 > [C언어] 프로그래밍' 카테고리의 다른 글
6. 함수와 기억 클래스(1) (0) | 2020.05.28 |
---|---|
5. 선택 제어문과 반복 제어문 (0) | 2020.05.28 |
3. 입·출력 함수와 연산자(2) (0) | 2020.05.28 |
3. 입·출력 함수와 연산자(1) (0) | 2020.05.28 |
1. C언어의 개요 (0) | 2020.05.27 |
댓글