(C언어) 10 - 연산자
C언어에서 활용빈도가 엄청 높은 필수적인 연산자들을 봅시다.
1. 대입 연산자
대입 연산자(=)는 변수에 값을 대입시킬 때 사용합니다. 수학에서 '같다'는 의미로 사용하지만 C언어와 대부분의 프로그래밍 언어에서 = 기호는 대입 연산자를 뜻하고 == 연산자가 '같다'는 의미의 논리연산자로 사용됩니다.
char num = 10;
double PI = 3.14;
2. 산술 연산자
산술 연산자는 4칙연산과 관련된 연사자입니다.
+ 더하기 ex) int add = 3+4;
- 빼기 ex) double sub = 7.14-5.25;
* 곱하기 ex) int mul = 3*4;
/ 나누기 ex) double div = 7.0/4.2;
\% 나머지 ex) int rem = 14/3; // 14를 3으로 나누면 몫이 4이고 나머지가 2이기 때문에 변수 rem에는 2가 대입된다.
산술연산자와 대입연산자를 함께 사용하면 수식이 간결해집니다.
int a+=3; // a=a+3;
int a-=3; // a=a-3;
int a*=3; // a=a*3;
int a/=3; // a=a/3;
int a%=3; // a=a%3;
3. 증가, 감소 연산자
증가, 감소 연산자에는 ++, --가 있습니다. ex) num++, ++num, num--, --num
변수의 값을 1 증가시키거나 감소시키는 것인데, ++과 --의 위치에 주의해야 합니다. ++이나 --이 뒤에오면 증감 명령이 속한 문장을 먼저 실행시키고 ++,--을 수행하라는 의미입니다. ++,--이 앞에 오면 먼저 값을 증가, 감소 시킨 후에 문장을 실행하라는 의미입니다.
#include <stdio.h>
int main(void)
{
int num = 10;
int result = 0;
result = num++;
printf("result is %d\n", result);
printf("num is %d\n", num);
num = 10;
result = ++num;
printf("\n");
printf("result is %d\n", result);
printf("num is %d\n", num);
return 0;
}
실행결과
result is 10
num is 11
result is 11
num is 11
계속하려면 아무 키나 누르십시오 . . .
num++을 사용했을때는 result에 먼저 num의 값이 담기고 난 다음 num++이 실행되어 num이 1 증가했습니다. 하지만, ++num을 사용했을때는 num이 먼저 10에서 11로 1 증가 후 result에 대입이 되었습니다. --연산도 동일한 결과를 만들어 냅니다.
4. 비교 연산자
비교 연산자에는 <, \>, <=, \>=, ==, !=이 있습니다. 두 항을 비교하여 논리판단을 할 때 사용합니다.
if(a<b){a++;} // a가 b보다 작으면 a의 값을 1 올려라
if(a>b){a-;} // a가 b보다 크면 a의 값을 1 줄여라
if(a<=b){a++;} // a가 b보다 작거나 같으면 a의 값을 1 올려라
if(a>=b){a-;} // a가 b보다 크거나 같으면 a의 값을 1 줄여라
if(a==5){printf("a is 5"); // a가 5와 같으면 "a is 5";의 문장을 출력해라
if(a!=5){printf("a is not 5"); // a가 5와 같지 않다면 "a is not 5";의 문장을 출력해라
if문은 조건문인데, 우리가 제시한 조건을 판단하여 '참(1)'이면 { } 안의 문장을 실행하고 '거짓(0)'이면 { } 안의 문장을 실행하지 않습니다.
비교연산자를 이용해서 논리연산을 수행하면 수식 자체가 0이나 1을 반환합니다. 예컨데 a<b가 참이면 a<b 라는 문장이 정수 1과 동일하단 것입니다.
#include <stdio.h>
int main(void)
{
int num = 10;
printf("%d\n", num == 10); // 참이므로 1
printf("%d\n", num != 10); // 거짓이므로 0
printf("%d\n", num>100); // 거짓이므로 0
if(num == 10) //if(1) 과 완전히 동일
{
num++;
num++;
} // ( ) 안의 문장이 참이므로 { } 안의 문장 수행 num이 10에서 12로 증가
printf("%d\n",num); // num = 12
return 0;
}
실행결과
1
0
0
12
계속하려면 아무 키나 누르십시오 . . .
이처럼 비교연산자는 논리를 판단하고 결과에 따라 다른 동작이 필요할 때 사용합니다.
5. 논리 연산자
&& : AND 연산자 → 두 조건이 '모두 참' 일 때 참이면 1 반환
|| : OR 연산자 → 두 조건 중 '하나라도 참' 일 때 참이면 1 반환
! : NOT 연산자 → 논리 역전 ('참'→'거짓', '거짓'→'참')
#include <stdio.h>
int main(void)
{
int a=5;
int b=10;
if(a==5 && b==10)
{
printf("true\n");
}
if(a>1 || b>100)
{
printf("true\n");
}
if(!0)
{
printf("true\n");
}
return 0;
}
실행결과
true
true
true
계속하려면 아무 키나 누르십시오 . . .