본문 바로가기
  • Larry`s arduino blog
아두이노

[ 아두이노 강좌 ] 2-2. C언어 기초 2-자료형,변수

by larry 2020. 12. 31.

[ 아두이노 강좌 ] 2-2. C언어 기초 2-변수

 

오늘은 변수에 대해 배워보도록 하자.

 

변수는 어떤 값을 이름을 붙여 저장하는 공간이다.

C언어에서는 변수를 만들 때 먼저 변수의 자료형을 알아야 한다.

여기서 자료형은 변수에 들어갈 값이 정수인지, 소수인지, 문자인지 같이 값의 형식을 말한다.

그리고 변수의 이름을 정해야 합니다.

참고로 변수의 이름을 정할때는 몇 가지 제한이 있다.

 1. 이름에는 영문자(대소문자), 숫자, 언더바(_)만 들어갈 수 있다.

 2. 이름의 첫번째 글자에는 숫자가 들어갈 수 없다.

 3. 이름에는 띄어쓰기(공백)이 들어갈 수 없다.

 4. 이미 다른 기능으로 정해져 있는 이름은 사용할 수 없다.

 

잠시 자료형에 대해 알아보자.

자료형은 변수가 저장할 데이터의 형식을 말한다.

변수를 사용하기 위해서는 변수를 사용한다고 선언을 해주어야 하는데, 이때 변수를 선언하면 컴퓨터 또는 아두이노에서는 미리 메모리를 잡아놓는다.

자료형으로 그 변수에 문자가 들어갈지 숫자가 들어갈지 같은 형식을 정해놓아야 한다.

또 자료형 별로 잡아놓는 메모리가 정해져 있기 때문에 그 자료형을 사용한 변수에는 값이 들어갈 수 있는 범위에 한계가 있다.

그래서 큰 값을 넣으려면 더 큰 메모리를 잡는 자료형을 써야 한다.

그렇지 않고 작은 자료형으로 선언한 변수에 더 큰 값을 넣으면 오버플로우라는 것이 나면서 변수의 반대쪽 끝 값으로 넘어간다.(이게 무슨 말이냐면 예를 들어 -10~10까지의 범위를 가진 변수에 11을 넣으면 10에서 다음 수는 반대쪽으로 가서 -10이 된다는 것이다.)

먼저 아두이노에서 많이 사용할 만한 기본적인 자료형들을 알아보자.

이것들은 기초적인 것들이기 때문에 외우는 것이 좋다.

형식

자료형

범위

메모리 크기

문자

char

-128~127 (문자의 아스키코드값)

1 byte

정수


 

short

-32,768~32,767

2 bytes

int

-2,147,483,648
~2,147,483,647

4 bytes

long long

-9,223,372,036,854,775,808
~9,223,372,036,854,775,807

8 bytes

byte

0~255 (8bit unsigned)

1 byte

소수

float

-3.4*10^3 ~3.4*10^38

4 bytes

double

-1.79*10^308~1.79*10^308

8 bytes

논리(참, 거짓)

bool, boolean

참 또는 거짓

1 byte

*참고로 논리에서 참은 1을, 거짓은 0을 나타낸다.(정확히는 참은 0이 아닌 모든 수이기는 하지만 1로 많이 쓰인다.)

 

여기서 위의 자료형들은 또 두 가지로 나눠서 쓸 수 있다.

signed와 unsigned인데 아무것도 안 쓰면 기본은 signed이다.

하지만 unsigned를 쓰면 별로 쓰지 않는 음수 범위가 양수로 넘어온다.

양수만 쓰는 변수들은 unsigned를 쓰면 범위를 2배 넓힐 수 있는 것이다.

 

아무튼 변수를 선언하는 방법은 아래와 같다.

 

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

 

예를 들면 이렇게 사용할 수 있다.

정수형으로 a라는 이름의 변수를 선언하려면 아래와 같이 쓰면 된다.

 

int a;

 

위에서 말한 unsigned를 쓰고 싶다면 int를 unsigned int로 바꾸면 된다.

 

그리고 변수를 선언하는 곳은 setup이나 loop 안에서도 선언할 수 있지만 그 위에서도 할 수 있다.

setup이나 loop 또는 나중에 배울 어떤 조건문이나 반복문에서 선언하면 그 안에서만 사용할 수 있지만 그 위의 아무것도 없는 곳에서 하면 어디서든 쓸 수 있다.

또 어디 안에서 선언하면 처음 변수를 선언할 때 변수 안에 쓰레기 값이 들어있다.

그걸 없애거나 처음에 어떤 원하는 값을 넣고 시작하고 싶으면 우리는 변수를 선언할때 초기화라는 것을 통해 원하는 값을 넣을 수 있다.

사용방법은 아래와 같다.

 

(변수의 자료형) (이름) = (원하는 값);

 

참고로 문자를 넣을 때는 작은따옴표나 큰 따옴표가 필요하다.

예를 들어 자료형이 int이고 이름이 a인 변수에 3이라는 값을 넣은 채로 선언하려고 하면 아래와 같이 하면 된다.

 

int a = 3;

 

처음에 선언할 때 말고 나중에 값을 바꾸고 싶으면 이렇게 하면 된다.

 

(변수의 이름) = (원하는 값);

 

마지막으로 예를 들어서 자료형이 float이고 이름이 b인 변수를 1.3로 초기화하며 선언하고, 다시 3.7로 바꾸려면 이렇게 하면 된다.

 

float b = 1.3;
b = 3.7;

 

 

 

댓글