C language Chapter 3. C언어의 변수와 자료형

2020. 1. 19. 22:00·언어/C,C++

안녕하세요

 

오늘 C언어에 대해서 알아볼 것은 변수와 자료형 입니다!

 

1. 변수

 

변수라는 개념이 생소한 경우, 상자를 들어 생각하시면 이해하기 쉽습니다.

 

먼저 C언어에서 변수의 선언은 다음과 같습니다.

 

(자료형) (변수이름);

 

예를 들어 a라는 이름의 변수를 선언하려면 다음 코드와 같습니다.

 

int a;

 

 

 

 

'int a;' 라는 코드는 a라는 이름의 상자를 만든다! 정도로 생각해주시면 되겠습니다.

 

또 변수의 초기화라는 것이 있는데, 이는 상자를 만들고 처음으로 그 상자에 무언가를 넣는것을 의미합니다.

 

C언어에서 변수의 초기화는 다음과 같습니다.

 

  1. (자료형) (변수이름) = (값);
  2. (자료형) (변수이름);
    (변수이름) = (값);

이때 변수의 이름은 영어문자, 숫자, 언더바(_)만 가능합니다

 

또 숫자로 시작하는 경우도 불가능합니다

 

ex) 가능 -> count, ab123, de_acel

    불가능 -> 123did, adfe-23, hello!

 

아까 선언했던 a라는 변수를 가지고 코드를 다시 작성해보면,

 

int a = 5;

 

혹은

 

int a;

a = 5;


이렇게 나타낼 수 있습니다.

 

 

 

변수를 선언 및 초기화 시킨 후에도 변수의 값을 변경할 수 있습니다.

 

이를 변수의 할당(대입)이라고 하는데요, C언어에서 변수의 할당은 다음과 같은방법으로 가능합니다.

 

(변수이름) = (값);

 

아까 선언한 a라는 변수의 값을 10으로 바꾸고 싶다면,

 

a = 10;


이렇게 코드를 작성하면 됩니다.

 

 

코드를 통해 위 과정을 살펴보죠

 

#include <stdio.h>

int main()
{
	int a;
	a = 5;
	printf("a = %d\n", a);
	a = 10;
	printf("a = %d\n", a);
    
    return 0;
}

 

위 코드의 실행결과는 다음과 같습니다.

 

맨 처음 int a;로 변수 a를 생성한 후

 

a = 5;로 변수 a에다가 5을 할당했습니다.

 

그 후 값을 출력해 확인한 뒤 다시 a = 10;을 통해 변수 a에다가 10을 할당했습니다.

 

이렇듯 변수는 생성한 뒤 여러 번 그 값을 바꿀 수 있습니다.

 

출력 함수인 printf에 관해선 Chapter 4. C언어의 입출력에서 다루도록 하겠습니다.

 

위에서 변수를 생성하고 값을 넣을 때 상자에 비유하여 설명했는데, 컴퓨터 안에서 이 상자에 해당하는 것이 메모리 공간과 메모리 주소입니다.

 

우리가 변수를 생성하게 되면, 컴퓨터는 생성된 변수를 특정 메모리 공간에 넣습니다.

 

다음 코드를 통해서 a라는 변수를 생성 후 그 메모리 주소값을 출력해봅시다.

 

#include <stdio.h>

int main()
{
	int a = 5;
    printf("%x",&a);
	return 0;
}

복잡한 값이 나오는데, 이 값이 바로 a변수의 메모리 주소 값입니다. 따라서 위의 상자 예시를 다시 나타내면 다음과 같습니다.

 

 

2. 자료형

 

변수의 선언에서 변수이름 앞에 붙었던 자료형에 대해 알아보겠습니다.

 

자료형은 그 변수가 어떤 용도의 상자로 쓰일지 정하는 것과 같습니다.

 

예시 코드int a; 에서 int는 a라는 상자가 integer 즉, 정수만을 담는 상자라는 것을 의미합니다.


선언된 a변수에는 정수(1,2,3)만이 할당될 수 있고 문자(a, b, c),소수(3.141592...)는 할당될 수 없습니다.

 

자료형은 int 외에도 float, char 등이 있고 각 자료형은 필요한 바이트의 크기와 제한된 범위를 가지고 있습니다.


이를 표를 통해 정리해보겠습니다.

 

자료형 크기(Byte) 범위
char 1 -128 ~ 127
short 2 -32,768 ~ 32,767
(signed) int 4 -2,147,483,648 ~2,147,483,647
unsigned int 4 0 ~ 4,294,967,295
long long int 4 -9,223,372,036,854,775,808
~9,223,372,036,854,775,807
float 4 -3.4E+38 ~3.4E+38
double 8 -1.7E+308 ~ 1.7E+308
long double 8~  

 

표에서 unsigned int라는 것이 등장하는데요, 이는 0과 양의 정수만을 담는다는 것을 의미하며 줄어든 음의 정수 범위만큼 양의 정수 범위가 늘어납니다. 실질적으로는 범위가 두 배가 된 것이죠.

 

int와 signed int는 같은 자료형이며 signed는 생략이 가능합니다.

 

위 자료형들의 크기를 코드를 통해 확인해보겠습니다

 

자료형의 크기는 sizeof 함수를 써서 sizeof(자료형)형식으로 작성하여 값을 반환하면 됩니다. sizeof 함수는 stdio.h 헤더 파일에 포함되어 있습니다.

 

#include <stdio.h>

int main()
{
	printf("char 크기 = %d\n", sizeof(char));
	printf("short 크기 = %d\n", sizeof(short));
	printf("int 크기 = %d\n", sizeof(int));
	printf("long int 크기 = %d\n", sizeof(long int));
	printf("float 크기 = %d\n", sizeof(float));
	printf("double 크기 = %d\n", sizeof(double));
	printf("long double 크기 = %d\n", sizeof(long double));

	return 0;
}

 

코드의 실행결과는 다음과 같습니다.

 

 

 3. 입출력 형식

 

입출력에 관해서는 Chapter 4. C언어의 입출력에서 배울 겁니다.

 

그전에 위에서 나온 자료형들의 입출력 형식에 대해 간단하게 정리하려고 합니다.

 

종류 자료형 형식
정수 int,short %d
long int %ld
long long int %lld
unsigned int %u
실수 float %f
double %lf
long double %Lf
문자 char %c

 

long이 붙으면 l, unsigned이 붙으면 u 등의 특징이 있습니다.

 

표에 나온 것 이외에도 다양한 형식이 있으나, 이는 추후에 다루도록 하겠습니다.


 

이상으로 글을 마치겠습니다.

 

글의 오류가 있을 시 지적해주시면 감사하겠습니다!

저작자표시 (새창열림)

'언어 > C,C++' 카테고리의 다른 글

C Language Chapter 6. 반복문  (0) 2020.08.03
C language Chapter 5. C언어의 조건문(+switch문)  (0) 2020.04.17
C language Chapter 4. C언어의 입출력  (0) 2020.03.17
C language Chapter 2. C언어 개발환경  (2) 2020.01.09
C language Chapter 1. C언어를 알아보자!  (0) 2019.12.31
'언어/C,C++' 카테고리의 다른 글
  • C language Chapter 5. C언어의 조건문(+switch문)
  • C language Chapter 4. C언어의 입출력
  • C language Chapter 2. C언어 개발환경
  • C language Chapter 1. C언어를 알아보자!
깜냥c
깜냥c
게임 개발/클라이언트/AI/PS/기타 연구
  • 깜냥c
    Choice Program
    깜냥c
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 언어 (12)
        • C,C++ (10)
        • C# (1)
        • Python (1)
      • PS (20)
        • 백준 문제 (19)
        • 알고리즘 (1)
      • 인공지능 (2)
      • 게임제작 (7)
      • 게임개발 (16)
        • Unity (8)
        • Unreal Engine (6)
        • Godot Engine (1)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 블로그 소개
  • 링크

    • 김병장의 IT 블로그
    • 식품영양과 데이터사이언스
  • 공지사항

  • 인기 글

  • 태그

    Godot
    C언어
    C++
    백준
    UE5
    Unreal
    입출력
    unity
    BOJ
    배낭 문제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
깜냥c
C language Chapter 3. C언어의 변수와 자료형
상단으로

티스토리툴바