본문 바로가기
C 언어 프로그래밍/자료형과 변수

자료형

by 프밍샘 2020. 6. 15.

자료형(data type)

프로그래머는 자료의 유형과 크기를 파악하여 적절한 자료형을 선택할 수 있어야 합니다. C언어의 기본 자료형은 다음과 같습니다. signed는 부호가 있는 자료형, unsigned는 부호가 없는 자료형을 나타내며, short와 long은 크기를 말합니다. 

 

정수형

자료형 크기(Byte) 표현 범위
정수 short 2 -32,768~32,767
unsigned short 2 0~65,535
int 4 -2,147,483,648~2,147,483,647
unsigned int 4 0~4,294,967,295
long 4 -2,147,483,648~2,147,483,647
unsigned long 4 0~4,294,967,295

 

문자형

문자형 데이터는 실제로 아스키(ASCII) 코드값으로 표현되므로 정수형 타입이라 할 수 있습니다. 따라서 작은 범위의 정수를 선언할 때 메모리 공간의 낭비가 발생하지 않도록 문자형(char)으로 선언하여 공간을 효율적으로 사용할 수 있습니다.

자료형 크기(Byte) 표현 범위
문자
(정수)
char 1 -128~127
unsigned char 1 0~255

문자형 자료를 정수형(%d)으로 출력하면 아스키(ASCII) 코드값을 확인할 수 있습니다.

더보기

출력화면

코드

#include <stdio.h>
int main()
{
	printf("%d\n", 'A');
	printf("%d\n", 'a');
		
	return 0;
}

 

실수형 

자료형 크기(Byte) 표현 범위
실수 float 4 -3.4*10^38~3.4*10^38
double 8 -1.79*10^308~1.79*10^308

sizeof 연산자로 각 자료형의 크기를 확인할 수 있습니다.

더보기

출력화면

코드

#include <stdio.h>
int main(){
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
		
	return 0;
}

 

 

 

 

 

 

 

자료의 형변환

 

자동 형 변환(묵시적 형 변환, implicit type conversion)

컴파일러는 자료의 손실을 최소화하는 방향으로 자료형을 변환합니다. 각각 다른 자료형의 산술연산이 이루어진다면 크기가 작은 자료형에서 큰 자료형으로 자동변환 됩니다. 예를 들어 3*3.14의 연산에서는 정수형 자료인 3이 실수형 자료 3.000000으로 자동변환 후 연산됩니다.

 

더보기

출력결과

코드

#include <stdio.h>
int main()
{
	float cir;
	
	cir=3*3.14;   //연산되는 두 자료형이 다른 경우 자동으로 형변환이 이루어짐
	
	printf("지름이 3인 원의 둘레는 %.2f입니다.", cir);
 		
	return 0;
}

 

강제 형 변환(명시적 형 변환, explicit type conversion)

프로그래머가 의도적으로 자료형을 지정하여 변환하는 것을 말합니다. ( )안에 변환할 자료형을 넣고 변환할 변수 앞에 붙입니다. 아래의 코드에서 sum(정수형) 과 2(정수형)는 같은 자료형이므로 자동 형변환이 이루어지지 않고 정수형의 결과인 5가 출력될 것입니다. 따라서 sum 앞에 (float)를 붙여 강제로 형 변환을 시킨 뒤 연산을 한다면 정확한 결과를 얻을 수 있습니다.

 

더보기

출력결과

코드

#include <stdio.h>
int main()
{
	int num1, num2, sum;
	float avg;
	
	num1=3;
	num2=8;
	
	sum=num1+num2;
	avg=(float)sum/2;    //연산되는 두 자료형이 같은 경우 강제로 변환이 필요함
	
	printf("합:%d, 평균:%.1f", sum, avg);
 		
	return 0;
}

 

 

 

 

 

 

 

 

접미사와 자료형

 

리터럴 상수의 값 뒤에 접미사를 붙여 사용하며, 컴파일러에게 그 값이 어떠한 자료형인지 알려 줍니다. 대소문자는 따로 구분하지 않지만 대문자를 주로 많이 사용합니다.

 

  • int, double : 생략
  • usigned int : U, u
  • long : L, l
  • unsigned long : UL, ul
  • float : F, f

 

 

 

 

 

 

 

 

 

자료형 예제

 

(단계1) 정수형, 실수형, 문자형 변수를 선언하고, 각각의 변수에 35, 3.14, 'a'의 값을 초기화 한 뒤, 값을 출력하는 프로그램을 작성하시오.

 

출력결과

코드

#include <stdio.h>
int main()
{
	int i=35;
	float f=3.14F;	//상수 값 뒤에 F를 붙여 컴파일러에게 자료형을 알려줌
	char c='a';
	
	printf("%d\n", i);
	printf("%f\n", f);
	printf("%c\n", c);
 		
	return 0;
}

 

 

 

(단계2) 국어 98점, 영어 81점, 수학 100점인 학생의 각 과목의 점수, 총점과 평균을 출력하는 프로그램을 작성하시오.

 

출력결과

 

 

코드

 

#include <stdio.h>
int main()
{
	int kor, eng, math, sum;
	float avg;
	
	kor=98;
	eng=81;
	math=100;
	
	sum=kor+eng+math;
	avg=(float)sum/3;
	
	printf("국어:%d점\n", kor);
	printf("영어:%d점\n", eng);
	printf("수학:%d점\n", math);
	printf("총점:%d점, 평균:%.2f점\n", sum, avg);	
 		
	return 0;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'C 언어 프로그래밍 > 자료형과 변수' 카테고리의 다른 글

상수와 변수  (0) 2020.06.15

댓글