3-1. 덧셈 프로그램 구현을 위해 필요한 + 연산자
#include <stdio.h>
int main(void)
{
3+4;
return 0;
}
- 잘못된 코드
- 위의 + 기호처럼 연산을 요구할 때 사용되는 기호를 가리켜 연산자라 한다.
3-2. C언어는 데이터 저장을 위해 변수를 제공한다.
1. 변수를 이용한 데이터의 저장
- 변수란?
> 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름을 의미한다.
#include <stdio.h>
int main(void)
{
int result; //변수 선언
result=3+4; //덧셈 결과 저장
printf("덧셈 결과 : %d \n", result);
printf("%d 더하기 %d는 %d 입니다. \n", 3, 4, result);
printf("변수 result에 저장된 값 : %d \n", result);
return 0;
}
결과
덧셈 결과 : 7
3 더하기 4는 7 입니다
변수 result에 저장된 값 : 7
3-3. C언어에는 다양한 연산자가 존재한다.
1. C언어가 제공하는 다양한 종류의 연산자들
-대입 연산자(=)와 산술 연산자(+,-,*,/,%)
연산자 | 연산자의 의미 |
= | 오른쪽에 있는 값을 왼쪽에 대입한다. ex) a = 20 |
+ | 왼쪽과 오른쪽에 있는 값을 더한다. ex) a = 4+3 |
- | 왼쪽에 있는 값에서 오른쪽에 있는 값을 뺀다. ex) a =4-3 |
* | 왼쪽과 오른쪽에 있는 값을 곱한다 ex) a= 4*3 |
/ | 왼쪽에 있는 값을 오른쪽에 있는 값으로 나눈다 ex) a = 4/3 |
% | 왼쪽에 있는 값을 오른쪽에 있는 값으로 나눠서 나머지를 반환한다. ex) a= 4%3 |
#include <stdio.h>
int main(void)
{
int val1=4;
int val2=2;
printf("두 수의 덧셈: %d \n", val1+val2);
printf("두 수의 뺄셈: %d \n", val1-val2);
printf("두 수의 곱셈: %d \n", val1*val2);
printf("두 수의 나눗셈: %d \n", val1/val2);
printf("두 수의 나머지: %d \n", val1%val2);
return 0;
}
결과
두 수의 덧셈: 6
두 수의 뺼셈: 2
두 수의 곱셈: 8
두 수의 나눗셈: 2
두 수의 나머지: 0
2. 기타 대입 연산자(+=, -=, *=, /=, %=)
- a = a + b; = a +=b;
- 위는 같은 의미
#include <stdio.h>
int main(void)
{
int val1=2;
int val2=4;
int val3=6;
val1+=3; //val1=val1+3;
val2*=4; //val2=val2*4;
val3%=5; //val3=val3%5;
printf("result : %d %d %d \n", val1, val2, val3);
return 0;
}
결과
result : 5 16 1
3. 부호 연산으로서의 +와 -연산자
#include <stdio.h>
int main(void)
{
int val1=2;
int val2=-4;
val1=-val1; //val1-=val1과 혼동 하지 말 것.
printf("val1=-val1 연산 이후 val1은 %d \n", val1);
val2=-val2;
printf("val2=-val2 연산 이후 val2은 %d \n", val2);
return 0;
}
결과
val1=-val1 연산 이후 val1은 -2
val2=-val2 연산 이후 val2은 4
4. 증가, 감소 연산자
연산자 | 연산자의 의미 |
++a | 값을 1 증가 후 연산을 진행 ex) printf("%d", ++a) |
a++ | 연산을 진행한 후 값을 1 증가 ex) printf("%d", a++) |
-b | 값을 1 감소 후 연산을 진행 ex) printf("%d, --b) |
b- | 연산을 진행한 후 값을 1 감소 ex) printf("%d", b--) |
#include <stdio.h>
int main(void)
{
int val1=10;
int val2=10;
printf("선 연산 후 증가 : %d \n", val1++);
printf("다시 한번 출력 : %d \n", val1);
printf("선 증가 후 연산 : %d \n", ++val2);
printf("다시 한번 출력 : %d \n", val2);
return 0;
}
결과
선 연산 후 증가 : 10
다시 한번 출력 : 11
선 증가 후 연산 : 11
다시 한번 출력 : 11
#include <stdio.h>
int main(void)
{
int val1=10;
int val2=(val1--)+2;
printf("val1 : %d \n", val1);
printf("val2 : %d \n", val2);
return 0;
}
결과
val1 : 9
val2 : 12
5. 관계 연산자(비교 연산자)
연산자 | 예 | 의미 |
< | a<b | a가 b보다 작은가? |
> | a>b | a가 b보다 큰가? |
== | a==b | a와 b가 같은가? |
!= | a!=b | a와 b가 같지 않은가? |
<= | a<=b | a가 b보다 작거나 같은가? |
>= | a>=b | a가 b보다 크거나 같은가? |
#include <stdio.h>
int main(void)
{
int val1=10;
int val2=12;
int result1, result2, result3;
result1=(val1==val2);
result2=(val1<=val2);
result3=(val1>val2);
printf("result1 : %d \n", result1);
printf("result2 : %d \n", result2);
printf("result3 : %d \n", result3);
return 0;
}
결과
result1 : 0
result2 : 1
result3 : 0
6. 논리 연산자
- 논리 연산자란 and, or, not을 표현하는 연산자이다.
연산자 | 연산자의 의미 |
&& | 피연산자가 모두 참이면 true를 반환(and의 의미) ex) a && b |
|| | 피연산자 중 하나라도 참이면 true를 반환(or의 의미) ex) a||b |
! | 피연산자가 true면 false를, false면 true를 반환 (not의 의미) ex) !a |
#include <stdio.h>
int main(void)
{
int val1=10;
int val2=12;
int result1, result2, result3;
result1=(val1==10 && val2==12);
result2=(val1<12||val2>12);
result3=(!val1);
printf("result1 : %d \n", result1);
printf("result2 : %d \n", result2);
printf("result3 : %d \n", result3);
return 0;
}
결과
result 1 : 1
result 2 : 1
result 3 : 0
7. 비트 단위 연산자
~, &, ^, |, <<, >>
8. 콤마(,)연산자
#include <stdio.h>
int main(void)
{
int a=1, b=2;
printf("Hello "), printf("World! \n");
a++, b++;
printf("%d ", a), printf("%d ", b), printf("\n");
return 0;
}
결과
Hello World!
2 3
연산순위 | 연산자 |
1 | (), [], ->, . |
2 | sizoof, &, ++, ==, ~, !, *(간접 지정 연산자), +(단항 연산자), -(단항 연산자) |
3 | *(곱셈 연산자), /, % |
4 | +(이항 연산자), -(이항 연산자) |
5 | <<,>> |
6 | <,<=,>=,> |
7 | ==,!= |
8 | & |
9 | ^ |
10 | | |
11 | && |
12 | || |
13 | ?;(삼항 연산자) |
14 | =, +=, *=, /=, &=, &=, ^=, |=, <<=, >>= |
15 | ,(콤마 연산자) |
3-4 키보드로부터 데이터를 입력 받고 싶다!
1] scanf를 이용해서 키보드로부터 정수를 입력받기 원한다면?
#include <stdio.h>
int main(void)
{
int result;
int val1, val2;
printf("첫 번째 숫자: ");
scanf("%d", &val1); //첫 번째 데이터 입력
printf("두 번째 숫자: ");
scanf("%d", &val2); //두 번째 데이터 입력
result=val1+val2; //덧셈 연산.
printf("%d + %d = %d \n", val1, val2, result);
return 0;
}
결과
첫 번째 숫자 : A
두 번째 숫자 : B
A + B = C
2] scanf를 이용하면 입력 형태를 다양하게 지정하는 것이 가능하다.
#include <stdio.h>
int main(void)
{
int result;
int val1, val2;
printf("숫자 둘을 입력 하세요 : ");
scanf("%d %d", &val1, &val2);
result=val1+val2;
printf("%d + %d = %d \n", val1, val2, result);
return 0;
}
결과
숫자 둘을 입력하세요 : A B
A + B = C
'C 프로그래밍' ~80P
'gamE > C' 카테고리의 다른 글
C - Chapter 2. 프로그램의 기본 구성 (0) | 2010.01.20 |
---|---|
C - Chapter1. 이것이 C언어다. (1) | 2010.01.19 |