변수(Variable)
값을 저장할 수 있는 메모리 공간에 붙여진 이름을 변수라고 한다. 다양한 자료형(type)으로 변수 선언이 가능하다.
상수(Constant)
값을 저장하되, 한 번 저장한 값을 변경할 수 없다. const를 앞에 붙여주어 심볼릭 상수가 생성 가능하다.
식별자(Identifier)
데이터의 항목을 식별하고 사용하는 문자열, 함수의 이름, 혹은 변수 또는 심볼릭 상수의 이름 등이 포함된다. 반드시 알파벳 또는 언더바( _ )로 시작되어야 한다. 알파벳과 숫자, 그리고 언더바로 이루어질 수 있다. 띄어쓰기가 적용되지 않는다. 기존에 존재하는 것과 같은 식별자로 선언할 수 없다.
연산자(Operator)
연산을 할 때 사용되는 기호, 연산자의 종류에 따라서 피 연산자의 개수가 다르다. 여러 개의 연산자가 사용되었을 때, 우선순위에 따라서 계산된다.
대입 연산자와 산술 연산자
연산자 | 기능 | 예 | 동일 연산 |
= | 대입 | a=20 | |
+ | 덧셈 | a=a+4 | a+=4 |
– | 뺄셈 | a=a-4 | a-=4 |
* | 곱셈 | a=a*4 | a*=4 |
/ | 나눗셈 | a=a/4 | a/=4 |
% | 나머지 | a=a%4 | a%=4 |
증가, 감소 연산자
연산자 | 기능 |
++a | 값을 1 증가 후, 해당 문장 계산 |
a++ | 해당 문장 계산 후, 값을 1 증가 |
–a | 값을 1 감소 후, 해당 문장 계산 |
a– | 해당 문장 계산 후, 값을 1 증가 |
관계 연산자
연산자 | 예 | 기능 |
< | a<b | a가 b보다 작은가 |
> | a>b | a가 b보다 큰가 |
== | a==b | a와 b가 같은가 |
!= | a!=b | a와 b가 같지 않은가 |
<= | a<=b | a가 b이하인가 |
>= | a>=b | a가 b 이상인가 |
논리 연산자
연산자 | 예 | 기능 |
&& | a&&b | and |
|| | a||b | or |
! | !a | not |
비트 연산자
연산자 | 예 | 기능 |
& | a&b | 비트단위 and |
| | a|b | 비트단위 or |
^ | a^b | 비트단위 xor |
~ | ~a | 비트단위 not |
함수(Function)
printf 함수
printf함수는 문자열을 모니터에 출력하는 함수인데 ‘\n’ 과 같은 특수문자를 출력 가능하고 원하는 양식으로 출력할 수 있는 함수이다. (글꼴 설정에 따라 다르게 나올 수 있지만 \와 역슬래시는 같다)
내가 아래와 같이 코드를 작성한다면, Hello! I am seongju 라는 문장을 쓰고 Enter를 치는 것과 같다. 그 아랫줄은 num이라는 변수에 저장한 숫자를 출력하는 것이다.
printf("Hello! I am seongju\n"); printf("%d, num");
자료형(Data type)
선언할 변수의 특징을 나타내는 키워드이다. 기본적으로 같은 자료형끼리만 연산이 가능하다.
자료형 | 메모리 크기 | 표현 가능한 데이터 범위 |
char | 1 byte | -128 ~ +127 |
short | 2 byte | -32768 ~ +32767 |
int | 4 byte | -2147483648 ~ +2147483647 |
long | 4 byte | -2147483648 ~ +2147483647 |
float | 4 byte | 3.4∗〖10〗^(-37) ~ 3.4∗〖10〗^38 |
double | 8 byte | 1.7∗〖10〗^(-307) ~ 1.7∗〖10〗^308 |
long double | 8 byte 이상 | 차이가 많이 남 |
과제
printf함수를 이용하여 자기 소개를 아두이노 시리얼 모니터에 출력해보자
***시리얼 모니터란?
아두이노 IDE에서 오른쪽 위에 돋보기 모양을 누르면 시리얼 모니터 창을 열 수 있는데, 시리얼 모니터는 시리얼 통신(Serial Communication)을 통해 컴퓨터와 아두이노가 주고 받는 데이터들을 확인할 수 있는 창이라고 보면 된다. 시리얼 통신은 말 그대로 연속적인 통신으로서 컴퓨터와 아두이노가 USB선으로 직접 연결되어 있을 때 통신이 가능하다.
Leave a Reply
You must be logged in to post a comment.