본문 바로가기
IT/C

C언어 연산자2

by -_-* 2021. 1. 2.
반응형

안녕하세요! 이미보라입니다. 

지난 포스트에서 우리는 C언어의 연산자 중에 대입연산자, 산술연산자, 관계연산자, 논리연산자, 비트연산자를 살펴보았습니다. 

 

 

오늘은 이어서 증감연산자, 조건연산자, 컴마연산자, cast연산자, sizeof()연산자, 복합대입연산자를 살펴보도록 하겠습니다. 

 

증감연산자

단항 연산자로서 연산에 쓰이는 값이 하나입니다. 
변수의 값을 1씩 증가시키거나 감소시키는 연산자를 증감연산자라고 합니다. 

연산자

의미

설명

변수++

후위증가연산자

변수 값을 식에서 사용한 이후에 변수 값을 1 증가

++변수

전위증가연산자

변수 값을 1 증가시키고 그 값을 식에서 사용

변수 --

후위감소연산자

변수 값을 식에서 사용한 이후에 변수 값을 1 감소

-- 변수

전위감소연산자

변수 값을 1 감소시키고 그 값을 식에서 사용

값을 증가할때 ++ 기호를, 감소할때 -- 기호를 사용합니다. 증감연산자가 어디에 위치하느냐에 따라 값을 증가하거나 감소하는 시기가 달라집니다.  연산자가 변수 앞에 위치하면, 변수에 값을 먼저 증가 또는 감소시키고 그 값을 식에서 사용할 수 있습니다. 반대로, 연산자가 변수 뒤에 위치하면 먼저 변수 값을 식에서 사용한 뒤에 변수의 값을 변화시킵니다. 

 

 

조건연산자

식 ? 참일때 수행되는 값 : 거짓일때 수행되는 값 

수식의 값의 결과에 따라 다른 연산 결과가 달라지는 연산자입니다.해당하는 식을 먼저 작성하고 물음표 뒤에  식이 참일 때 실행되는 코드를 작성하고, 콜론 : 뒤에 거짓일 때 수행되는 코드를 작성하면 됩니다. 따라서 ? 물음표 뒤의 코드 두개 중 하나만 실행될 수 있습니다. 

 

 

컴마연산자

식1, 식2 

식을 하나만 사용하도록 하는 부분에 여러가지 식을 사용하고 싶을 때 , 기호를 통해 식을 연결할 수 있습니다. 

 

 

CAST연산자

(변환할자료형) 피연산자 

프로그래머가 데이터의 자료형을 강제로 변환할때 사용하는 연산자입니다. 

 

sizeof()연산자

sizeof(알고자하는 자료형 또는 변수명)

메모리에 할당받은 바이트 수를 반환하는 연산자입니다. 

 

 

복합대입연산자

산술연산 또는 비트연산을 하고 난뒤 대입연산을 하는 연산자. 

산술연산 후 대입 
+= 값을 더하고 그 결과를 대입합니다. 
-=  값을 빼고 그 결과를 대입합니다. 
*= 값을 곱하고 그 결과를 대입합니다.  
/=  값을 나누고 그 결과를 대입합니다. 
%= 값의 나머지를 구하고 그 결과를 대입합니다.  

비트연산후 대입
&=     |=     ^=     <<=    >>=   비트연산 후 그 결과를 대입합니다. 

 

 

연산자 우선순위 

연산자 여러개가 동시에 사용될 때, 우선 순위가 높을 수록 먼저 연산을 수행한다. 

우선순위

연산자종류

연산자

결합성

괄호

( ) [ ] . ->

좌결합

단항 연산자

! ~ - + ++ -- & * ()

우결합

산술 연산자

* / %

좌결합

+ -

비트 이동 연산자

<< >>

관계 연산자

< <= > >=

== !=

비트 논리 연산자

&

^

|

논리 연산자

&&

||

조건 연산자

? :

우결합

대입 연산자

= += -= *= /= %= &= ^= |= <<= >>=

우결합

컴마 연산자

,

좌결합

 

 

연산자 예제 코드 2

#include <stdio.h>

int main(void) {

int number1, number2 = 5; // 컴마연산자 
int result = 0; 
double var_double= 1.3; 

printf("#######증감연산자####### \n");
result = ++number1;

printf ("전위증가연산 결과 >>> result : %d , number: %d \n" , result, number1); 

number1 = 5; 
result = number1++;

printf ("후위증가연산 결과 >>> result : %d , number: %d \n" , result, number1); 

printf("#######조건연산자####### \n");


printf("number1 : %d, number2: %d , number1 > number2 ? ", number1, number2 );
result = number1 > number2 ? printf("참입니다! \n") : printf("거짓입니다! \n"); 

printf("#######cast연산자####### \n");
printf("연산값 : %f cast연산자 결과 : %d \n" , var_double, (int)var_double); 

printf("#######sizeof 연산자####### \n");
printf("double형 : %d byte \n", sizeof(double));

printf("#######복합대입연산자 ####### \n");
printf ("number1 : %d " , number1); 

number1 +=5 ; 

printf ("number1 +=5 : %d" , number1); 

return 0;
}

 

위의 예제 코드와 아래의 결과값들을 비교해보면, 조금더 쉽게 연산자들을 이해할 수 있습니다. 

오늘은 여기까지 살펴보고 다음 포스트에서 조건문을 살펴보도록 하겠습니다. 감사합니다. 

반응형

'IT > C' 카테고리의 다른 글

C언어 반복문  (0) 2021.01.11
C언어 조건문  (0) 2021.01.10
C언어 연산자 1  (0) 2021.01.01
C언어 표준입출력  (0) 2020.12.31
c언어 자료형  (0) 2020.12.31

댓글