본문 바로가기
컴퓨터 프로그래밍/c 언어 (c programming language)

C 언어 - 변수와 자료형

by JaeBaek 2020. 9. 26.

variable (Pixabay)

변수

 c 언어에서 변수는 각각에 해당하는 종류가 있습니다. 그 크기와 종류에 맞게 지정을 한 다음 사용을 해야 합니다. 가장 기본적인 자료형으로는 다음과 같습니다.

기본자료형
정수형 실수형 문자형
short float char
int double  
long long double  

즉 위처럼 데이터를 저장하기 위해서 보관할 장소가 필요한데 이때 변수가 필요합니다. 따라서 데이터를 저장하는 메모리의 특정 위치에 주어진 이름이라고 할 수 있습니다.

 

■ 변수의 선언

C 언어에서 변수를 선언하는 형식은 다음과 같습니다.

변수 선형 형식 | 자료형 변수이름

 

변수의 이름을 사용할 때는 식별자(identifier)의 사용 규칙을 따릅니다.

 

식별자 규칙

ⓐ 식별자는 문자, 숫자, 밑줄 기호(_)로 구성될 수 있다.

ⓑ 식별자의 첫 문자로 숫자는 사용할 수 없다.

ⓒ 같은 문자의 대 소문자는 서로 다른 식별자이다. MAIN, main, Main은 모두 다른 이름이다.

ⓓ 식별자 중간에 공백 문자는 들어갈 수 없다.

ⓔ 예약어를 식별자로 사용할 수 없다. ex) int printf(); 사용 불가

 

■ 상수 선언

위에서 다룬 변수는 말 그대로 값들이 계속해서 변할 수 있습니다. 하지만 상수는 한번 결정되는 프로그램 수행 동안 변하지 않고 사용되는 값을 말합니다. 상수는 크게 리터럴 상수와 심벌릭 상수로 구분합니다.

 

리터럴 상수

사용자가 입력한 그대로를 나타내는 것으로 10진수, 8진수, 16진수, 정수, 실수 문자 등을 포함합니다.

printf("%d",1); %d는 정수형 상수를 사용
printf("%f",3.14159); %f는 실수형 상수를 사용
printf("%c",'A'); %c는 문자형 상수를 사용

 

심벌릭 상수

상수에 이름을 붙여 여러 곳에서 사용하는 상수로서 한번 설정한 값은 바뀔 수 없고 계속해서 사용을 해야합니다. 보통 일반적인 관례로 상수의 이름 첫글자를 대문자로 작성합니다. 

 

① const 예약어 사용

const 변수 선언 형식 | const 자료형 자료이름 = 초기값;

 

#include <stdio.h>

int main(void)
{
const double PI = 3.14;
int r=3;
printf("원의 넓이는 %f이다",PI*r*r);
 } 
원의 넓이는 28.260000이다

다시 말하지만 PI값을 3.14159와 같이 바꾸게 되면 컴파일 오류가 발생합니다.

 

② #define 문 사용

매크로 상수 선언 형식 | #define 매크로이름 값

 

#include <stdio.h>

#define PI 3.14

int main(void)
{
int r=3;
printf("원의 넓이는 %f이다",PI*r*r);
 } 
원의 넓이는 28.260000이다

 

const 예약어를 사용한 방법과 #define문을 사용한 방법 둘다 같은 결과를 가지는 것을 볼 수 있습니다. 보다 본인에게 맞는 방법으로 사용을 하시길 바랍니다.

 

 

자료의 종류 및 형식

■ 정수형

정수형은 소수점을 포함하지 않는 숫자에 사용하는 자료형입니다. 정수형을 얼마만큼의 정수값으로 사용할지 Byte값을 정하기 위해서 3가지의 자료형이 있습니다.

자료형의 종류 자료의 크기 표현 범위
short 2byte -32768~32767
int 4byte -2147483648~2147483647
long 4byte -2147483648~2147483647

 

■ 실수형

실수형은 소수점을 포함하는 숫자에 사용하는 자료형입니다. 정수형과 동일하게 할당되는 메모리 크기에 따라 2가지로 나뉩니다. 

자료형의 종류 자료의 크기 표현 범위
float 4byte -3.4e+38~3.4e+38
double 8byte -1.7e+308~1.7e+308

 

■ 문자형

문자형은 문자 코드를 저장할 때 사용하는 자료형으로서 char 형을 제공합니다.

자료형의 종류 자료의 크기 표현 범위
char 1byte -128~127

 

Exercise

지구에서의 몸무게 70kg을 달에서의 몸무게로 변환시키는 프로그램을 작성하라. 단 달의 중력은 지구 중력의 약17%이며, 달의 중력을 상수선언하라.

#include <stdio.h>

#define Moon 0.83

int main(void)
{
int weight=70;
float m_weight;
m_weight=Moon*weight;
printf("weight in moon is %f",m_weight);
 } 
weight in moon is 58.099998

 

70kg에 대한 몸무게인 정수형 자료를 int로 받아들였고, 달에서의 몸무게는 0.83을 곱해주어야 하므로 소수점으로 예상되기 때문에 float으로 선언하였다. printf 문에서 m_weight 값이 소수점을 포함하고 있으므로 %f를 하였다. 추가적으로 소수점 2자리까지만 얻고 싶다면 %.2f를 사용하면 된다.

'컴퓨터 프로그래밍 > c 언어 (c programming language)' 카테고리의 다른 글

C 언어 - 조건문  (0) 2020.09.26
C 언어 - 표준 입출력  (0) 2020.09.26
C 언어 - 연산자(operator)  (0) 2020.09.26
C 언어 기초  (0) 2020.09.26
c 언어 개요  (0) 2020.09.26

댓글