생선이의 잡다한 블로그

C언어 강좌 4 - 변수로 값을 저장하자! (자료형 데이터형) 본문

프로그래밍/C언어 강좌

C언어 강좌 4 - 변수로 값을 저장하자! (자료형 데이터형)

생선스프 2017. 3. 6. 20:30
반응형


안녕하세요 생선스프입니다~!


이번에는 변수에 값을 저장하여 사용하는법을 알아보려고 합니다


변수라는 것이 어디에 쓰일까요?
저희가 계산기를 만든다고 합니다

하지만 저희는 상대방이 어떤 숫자를 넣을줄알고 printf 에 미리 숫자를 넣어둘까요?


변수를 선언할떄는 자료형 변수이름 이 두가지가 들어갑니다


변수 이름을 지어줄떄는 몇가지 규칙이 있습니다


1. 영어, 숫자, _ (언더바) 를 이용하여 이름을 지어준다

2. 숫자로는 시작할 수 없다

3. C언어는 대소문자를 구별하는 언어이다

4. 공백은 사용할 수 없다

5. 예약어는 사용할 수 없다( printf 같은 이미 있는 이름은 사용할 수 없다)


이렇습니다!
그리고 변수의 이름은 알기쉽게 연관성이 있게 짓고 의미없는 이름은 지어주지 맙시다!


이제 자료형을 알아보겠습니다

자료형은 어떤 값을 저장할떄 형태는 어떤지, 크기는 어떤지를 보고 그 값에 적당한 자료형을 써주어야합니다


아래의 표를 참고하시면 됩니다!


 정수 자료형

 크기

 값의 표현범위

 정수형

 char

1바이트

 -128이상 +127이하
 unsigned char  0이상 (128+127)이하
 short

2바이트

 -32,768이상 +32,767이하
 unsigned short  0이상 (32,768+32,767)이하
 int

4바이트

 -2,147,483,648이상 +2,147,483,647이하
 unsigned int  0이상 (2,147,483,648 + 2,147,483,647)이하
 long

4바이트

 -2,147,483,648 이상
  2,147,483,647 이하

 unsigned long 0이상 (2,147,483,648 + 2,147,483,647)이하
 long long

8바이트

 -9,223,372,036,854,775,808 이상
  9,223,372,036,854,775,807 이하

 unsigned long long 0이상
 (9,223,372,036,854,775,808 + 9,223,372,036,854,775,807)이하

여기서 char 는 정수를 저장하기위함이 아닌 단일문자를 저장하기 위한것입니다!

unsigned 는 부호가 없음을 의미합니다

short보다 int가 연산속도가 더 빠르므로 작은 수여도 int를 사용합니다


실수 자료형

크기

값의 표현범위

실수형

 float

4바이트

 ±3.4 x 10^-37 이상 ± 3.4 x 10^38 이하
 double

8바이트

 ±1.7 x 10^-307 이상 ± 3.4 x 10^308 이하
 long double

8바이트 이상

 double 이상



이제 비주얼스튜디오를 키고 직접 해보죠!


우선 아래와 같이 적어 주겠습니다


1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
void main()
{
    int num1;
    int num2, num3;
    int num4 = 4, num5;
 
    num1 = 1;
    num2 = num3 = 3;
    printf("%d %d %d %d", num1, num2 ,num3, num4);
    printf("%d", num5);
}

cs


그리고 실행을 시켜보면..!


이렇게 num1 ~ num4 는 출력이 되지만 에러가 뜨며 num5가 출력이 되지 않습니다

왜일까요?

코드를 읽어보시면 num5만 숫자를 넣어주지 않았습니다

이를 변수를 초기화해주지 않았다고 표현합니다


초기화하지않은 변수에는 어떤값이 들어있을까요?

램은 여러 프로그램이 같이 사용하는 공간입니다(일반적인 변수 선언시 Stack 공간에 생기게 됩니다)


즉 다른프로그램이 사용하고 버린 공간을 내가 쓰게 될수도 있다는거죠

그러면 그 공간에는 쓰레기값이 들어있습니다


그래서 에러가 발생하게됩니다


반드시 변수를 사용할떄는 초기화를 해야합니다!


그럼 우선 num5에 값을 넣기는 귀찮으니 그냥 num5를 지우고 진행하죠

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
void main()
{
    int num1;
    int num2, num3;
    int num4 = 4;
 
    num1 = 1;
    num2 = num3 = 3;
    printf("%d %d %d %d", num1, num2 ,num3, num4);
}

cs


C언어 강좌 3 - 출력을 해보자! printf puts

이제 설명을 하도록하겠습니다


int num1;


위에서 말했듯이 자료형과 변수이름을 적어 선언을 합니다


int num2, num3;


선언을 동시에 쉼표로 구분지어 여러개 할 수 있습니다


int num4 = 4;

선언과 동시에 값을 넣어줄수 있습니다


num1 = 1;

우항의 값을 좌항의 값에 넣습니다


num2 = num3 = 3;
num3에 3을 넣고 num2에 num3을 넣습니다(결합방향 ← )


이렇습니다


이제 다음코드로 넘어가겠습니다


1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
void main()
{
    char ch1 = 'A';
    char ch2 = 65;
    
    printf("%c %c", ch1, ch2);
}
cs


일단 코드는 이해가 되실겁니다


그리고 실행을 시키면



이렇게 뜨는것을 확인할 수 있습니다


이말은 즉 'A' 와 65 가 같다는 말인데 뭐가 같은걸까요?

A의 아스키코드 값이 65 입니다


아까 char 가 정수형이였습니다

즉 char 에는 아스키코드값이 들어가게 되는것이죠


아스키코드 확인법


아래 아스키코드표가 있습니다


여기서 외우셔야할건 두가지입니다

대문자 A 는 65이고 소문자 a 까지 32가 차이가납니다

숫자 0 의 시작은 48


이정도만 외우면 되겠네요!


이번 강좌는 여기까지만 하도록 하겠습니다!


다음강좌는 배열을 알아보도록하겠습니다


이상으로 강좌 마치도록 하겠습니다!

강좌 읽어주셔서 감사합니다


공감과 댓글은 생선에게 힘이됩니다!

더 많은 C언어 강좌

반응형
Comments