웹사이트 검색

Linux C 프로그래밍 자습서 11부 - 산술, 관계 및 논리 연산자


이 페이지에서

  1. 결론

지금까지 이 C 프로그래밍 자습서 시리즈에서는 함수, 배열, 변수 등과 같은 기본 사항에 대해 논의했습니다. 흐름을 따라가면서 이 자습서에서는 또 다른 기본 개념인 연산자에 대해 설명합니다.

C 프로그래밍 언어의 초보자는 주로 산술, 관계 및 논리의 세 가지 종류의 연산자를 다룰 것입니다. airthmetic 연산자부터 시작하겠습니다.

C에는 +, -, *,/및 %의 기본적으로 5가지 유형의 산술 연산자가 있습니다. +, - 및 /는 자명하지만 *는 곱셈을 나타내고 %는 모듈러스 연산자입니다. 모르는 경우 % 연산자는 나머지를 제공합니다. 예를 들어:

a % b

여기서 % 연산자는 a를 b로 나눌 때 나머지 값을 얻도록 합니다. 이는 a가 b로 완전히 나누어지는 경우 나머지가 0이 될 수 있음을 의미합니다. 다음은 이러한 연산자에 대해 더 명확하게 설명하는 작은 예입니다.

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = a + b;
printf("%d\n", c);

c = a - b;
printf("%d\n", c);

c = a*b;
printf("%d\n", c);

c = a/b;
printf("%d\n", c);

c = a%b;
printf("%d\n", c);

return 0;
}

다음은 이 프로그램의 출력입니다.

13 
7
30
3
1

여기서 언급할 가치가 있는 것은 float와 double을 다룰 때 % 연산자를 사용하면 안 된다는 것입니다. 또한 여기에서 사용한 + 및 - 연산자는 이진 연산자이므로 두 개의 피연산자가 필요합니다(예: 이 경우 a 및 b). 단일 피연산자에서 작동하는 단항 + 및 - 연산자도 있습니다.

다음은 작동 중인 단항 - 연산자의 예입니다.

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = -a;
printf("c = %d", c);
}

결과는 다음과 같습니다.

c = -10

지금까지 논의된 모든 연산자 중에서 우선 순위가 높은 단항 + 및 -가 최상위 자리를 공유하고 그 다음이 *,/및 %이고 그 다음이 이진수 + 및 -입니다.

다른 단항 연산자도 있으며 그 중 일부는 이전 튜토리얼에서 간접적으로 논의했습니다. 목록은 다음과 같습니다: ++, --, !, & 및 sizeof.

우리는 이미 증가 및 감소 연산자 ++ 및 --(접두사 및 접미사 형식 모두)에 대해 논의했습니다. ! 적용되는 모든 것을 부정하는 NOT 연산자입니다. 예를 들어 조건의 결과가 참이면 ! false로 변환하고 그 반대도 마찬가지입니다.

계속해서 &는 변수의 주소를 가져오는 데 사용되며(scanf() 함수 인수의 경우 이미 본 것처럼) sizeof 연산자는 전달된 피연산자의 크기를 제공합니다. 다음 코드는 이러한 연산자에 대한 더 나은 아이디어를 제공합니다.

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0, d =1, e=0, f=9;

printf("a = 10 and a++ = %d\n", a++);

printf("b = 3 and ++b = %d\n", ++b);

printf("c = 0 and c-- = %d\n", c--);

printf("d = 1 and --d = %d\n", --d);

if(!e)
{
printf("\n e is zero or FALSE and its address is: %u\n", &e);
printf("\n sizeof 'f' is: %u\n", sizeof(f));

}


return 0;

}

결과는 다음과 같습니다.

a = 10 and a++ = 10 
b = 3 and ++b = 4
c = 0 and c-- = 0
d = 1 and --d = 0

e is zero or FALSE and its address is: 856178696

sizeof 'f' is: 4

계속해서 관계 연산자와 논리 연산자를 빠르게 살펴보겠습니다. 다음은 관계 연산자입니다.

> >= < <= == !=

사용 방법은 다음과 같습니다.

a > b
a >= b
a < b
a <= b
a == b
a != b

위의 순서대로 이러한 연산자는 a가 b보다 큰지, 크거나 같은지, 작은지, 작거나 같은지, 같은지, 같지 않은지 확인합니다. 처음 4개의 연산자는 동일한 우선 순위를 가지며 이는 마지막 2개보다 높습니다. 마지막 두 연산자는 동등 연산자라고도 합니다.

마지막으로 논리 연산자입니다. 기본적으로 &&와 ||의 두 가지가 있습니다. 이 두 연산자는 주로 조건이나 표현식을 평가하는 데 사용됩니다. 예를 들어:

if (cond1 && cond2)
{

}

if (expr1 && expr2)
{

}

if (cond1 || cond2)
{

}

if (expr1 || expr2)
{

}

처음 두 if 문의 경우 두 조건이 모두 참인 경우에만 실행이 블록에 들어갑니다. 반면 마지막 두 if 문의 경우 표현식 조건 중 하나라도 참이면 실행이 블록에 들어갑니다.

관계 연산자는 산술 연산자보다 우선순위가 낮고 논리 연산자는 관계 및 같음 연산자보다 우선순위가 낮습니다. 그 중에서도 &&는 ||보다 우선 순위가 높습니다.

결론

이 자습서에서는 연산자의 기본 사항, 작동 방식 및 우선 순위에 대해 설명했습니다. 여기에서 논의된 개념을 테스트하기 위해 몇 가지 샘플 C 프로그램을 작성하는 것이 좋습니다. 의심이나 질문이 있는 경우 아래 의견에 알려주십시오.