C언어 기초: 자료형과 변수

김영채 (Kevin)·2020년 3월 2일
0

C언어

목록 보기
1/23
post-thumbnail

식별자 (identifiers)

  • 변수 이름, 함수 이름

  • 식별자 구성: 대소문자 알파벳, 숫자, 밑줄(_)

    int main(void){

    int snum, credits;

    snum=2015114835; // 적절한 식별자 사용
    credits=18;

    printf("학번: %d\n", snum);
    printf("신청학점: %d\n", credits);

    return 0;
    }


자료형

  • 기본형 (basic types)
  • 유도형 (derived types)
  • 사용자 정의형 (user defined types)

변수

  • 프로그램에서 값을 저장할 수 있는 메모리의 저장 공간
  • 자료형에 따라 저장공간의 크기, 값의 종류 결정

⇒ 변수 선언과 변수 초기화는 좀 다름

int main(void){
	int math = 99;
	int korean = 90;  //이 2개는 0변수 선언 & 변수 초기화 (초기값 설정)

	int science;  // 단순 변수 선언

	return 0;
}

응용:

#include <stdio.h>

int main(){
	int num1=30,num2=14;
	int difference;

	difference = num1-num2;

	printf("num1 - num2 = %d\n", difference);

	return 0;
}

두 정수의 합, 두 부동소수의 차 출력

int main(){
	int a=30,b=43;
	int sum;
	sum = a+b;

	double x=38.232, y=45.232;
	double difference;
	difference = x-y;

	printf("합: %d\n", sum);
	printf("합: %f\n", difference); // %f는 실수 출력할 때 사용

	return 0;
}

자료형의 종류

  1. [ 기본 자료형 ]

    • < 정수형 >

      short

      int

      long

      ⇒ 10진수, 8진수, 16진수의 정수가 저장됨

      ⇒ signed: 양수, 0, 음수를 모두 표현

        //int 보다 작거나 같은 크기의 저장공간 ; 16비트의 정수값이 저장 (정수형 short)
        signed short int
        short int
        short
        
        //4바이트 (32비트) 크기의 저장공간
        signed int
        int
        signed
        
        //int보다 크거나 같은 크기의 저장공간
        signed long int
        long int
        long

      ⇒ unsigned: 0과 양수만을 표현 (* 자료형 unsigned는 0과 양수만을 지원하므로, 동일한 signed 자료형보다 약 2배 정도가 더 큰 양수를 저장할 수 있다)

    • < 실수형 >

      float

      double

    • < 문자형 >

      char

      ⇒ 1바이트의 저장 공간

    • < 무치형 >

      *void // 아무 자료형도 지정되지 않았으면, 인자가 없고 *반환값도* 없다.

  2. [ 유도 자료형 ]

    • < 배열 >
    • < 포인터 >
    • < 함수 >
  3. [ 사용자 정의 자료형 ]

    • < 열거형 >
    • < 구조체 >
    • < 공용체 >

정수형 변수 선언 및 활용 예시

int main(){

	short sVar = 32000;  //-32767에서 32767까지
	int iVar = -2140000000;  //약 21억 정도까지 저장 가능

	unsigned short int usVar = 65000;  //0에서 65536까지 저장 가능; unsigned는 음수를 표현하지 못하므로 32767 * 2 에 해당하는 크기 저장 가능
	unsigned int uiVar = 4280000000; //약 0에서 42억 정도까지 저장; 마찬가지로 unsigned이기 때문에 21억 * 2 까지 가능

	printf("%d %d\n", sVar, iVar);
	print("%u %u\n", usVar, uiVar);

	long long dist1 = 2720000000000 //지구와 천왕성 간의 거리(km)
	__int64 dist2 = 4500000000000  //태양과 해왕성 간의 거리(km)

	return 0;
}

double 과 float 선언 시 주의할 것!

float x = 3.14

⇒ 값을 표기하면 컴파일러가 그 크기와 형태를 보고 적당한 자료형을 선택함.

위와 같이 코드 작성 시 warning C4305: '초기화 중" : 'double'에서 'float'으로 잘립니다. 가 뜸.

왜냐하면 3.14는 8바이트 double형 상수로 생각하며 이 값을 저장하는 변수는 4바이트 float형이기 때문에 값이 잘려나갈수 있음을 경고한 것입니다. 이때는 3.14f와 같이 f 접미사를 붙여 float형 상수로 자료형을 변경시킬 수 있습니다. (3.14가 float형으로 충분히 표현할 수 있음에도 불구하고, 따로 f 접미사를 붙여주어야 하는 이유는 부동소수형 상수, 즉 실수는 기본적으로 double형이라고 간주해버리기 때문입니다.)


상수의 종류와 표현 방법

상수의 종류와 표현 방법

profile
맛있는 iOS 프로그래밍

0개의 댓글