[C] 연산자

728x90

1. 산술연산자

연산자의 종류

구분 연산자 기능
이항연산자 +,-,*,/ 더하기, 빼기, 곱하기, 나누기
% 나눗셈의 나머지
단항연산자 - 부호의 반전
++ 1증가
-- 1감소

 

예제)

#include <stdio.h>

void main()
{
    int x,y,z;
    x = 10;
    y = 3;
    
    z = -y;
    printf("z = %d\n",z); //z = -3
    printf("x+y = %d\n",x+y); //x+y = 13
    printf("x/y = %d\n",x/y); // x/y = 3
    
    //%를 연산을 사용하기 위해 % 두개를 사용한다.
    printf("x%%y = %d\n",x%y); // x%y = 1
    printf("y%%x = %d\n",y%x); //y%x = 3
    
    int a,b;
    
    a = ++x*x--; //1. ++x = 10-> 11, 2. ++x*x = 11*10 = 110, x-- = 11 -> 10
    b = x*10; // 10*10 = 100
    
    printf("a = %d, b=%d, x=%d",a,b,x); // a =110, b=100, x=10
    

}

2. 관계연산자

연산자의 종류

연산자 기능
== 동일여부 비교
!= 다른지 비교
>, >=, <. <= 대소관계를 비교

 

예제)

#include <stdio.h>

void main()
{
  
    int a=4, b,c,d;
    
    b = a >2;
    printf("b=%d\n",b); // b=1 (true)
    
    c = a<2;
    printf("c=%d\n",c); //c = 0(false)
    
    d = a ==4;
    printf("d=%d\n",d); // d = 1(true)

}

3. 논리연산자

연산자의 종류

연산자 기능
&& 논리곱(AND) : 양쪽 모두 참일때만 참
|| 논리합(OR) : 양쪽 중 하나라도 참이면 참
! 논리부정(NOT) : 오른쪽이 참이면 거짓, 거짓이면 참

 

예제)

#include <stdio.h>

void main()
{
   int a = 4, b=7, c,d,e;
   
   c = a>2 && b<=7;
   printf("c=%d\n",c); //c = 1 -> 양쪽 모두 참
   
   d = a<2 || b <=7;
   printf("d=%d\n",d); // d = 1 -> 왼쪽은 거짓, 오른쪽은 참
   
   e = !a;
   printf("e=%d\n",e); // e=0 -> a가 참이므로 a의 반대는 거짓
    

}

4. 대입연산자

연산자의 종류

연산자 예시 기능
= a=5 a에 5를 대입
+= a+=5 a에 5를 더한 후 결과값을 a에 대입
-= a-=5 a에 5를 뺀 후 결과값을 a에 대입
*= a*=5 a에 5를 곱한 후 결과값을 a에 대입
/= a/=5 a에 5를 나눈 후 결과값을 a에 대입
%= a%=5 a에 5를 나눈 후 나머지를 a에 대입
&= a&=5 a와 5에 대해 bit단위의 AND 연산을 한 후 결과를 a에 대입
|= a|=5 a와 5에 대해 bit단위의 OR 연산을 한 후 결과를 a에 대입
^= a^=5 a와 5에 대해 bit단위의 XOR 연산을 한 후 결과를 a에 대입
<<= a<<=5 a의 값을 5bit 좌측으로 이동 후 결과를 a에 대입
>>= a>>=5 a의 값을 5bit 우측으로 이동 후 결과를 a에 대입

 

예제)

#include <stdio.h>

void main()
{
  
  int a = 10,b=3,c=1;
  
  a *= (b-1);
  b /=2+3;
  c +=2;
  
  printf("a=%d, b=%d, c=%d",a,b,c); // a=20, b=0, c=3
  
  
    

}

5. 조건연산자(삼항연산자)

사용방법

(조건)?수식1:수식2;

 

조건이 참이면 수식1이 실행, 거짓이면 수식2가 실행

 

예제)

 

#include <stdio.h>

void main()
{
   int a = 10,b;
   
   b = (a >15)?(a+1):(a-1);
   printf("b=%d",b); // b=9
    

}

6. 비트연산자

연산자 예시 기능
& a&b (bit AND) 대응되는 두 bit가 모두 1일때 결과가 1
| a|b (bit OR) 대응되는 두 bit중 하나라도 1이라면 결과가 1
^ a^b (bit XOR) 대응되는 두 bit가 서로 다를때 결과가 1
~ ~a (bit NOT) 1은 0으로 0은 1로 변환
<< a<<2 a값에 대해 2비트 왼쪽으로 이동
>> a>>2 a값에 대해 2비트 오른쪽으로 이동

 

7. 기타연산자

연산자 기능
sizeof() 지정한 자료형, 수식, 변수가 차지하는 기억공간의 크기(byte)를 구함
cast 다른 자료형으로 형변환
& 피연산자의 주소를 나타냄
* 피 연산자의 내용을 가져옴

 

예제)

#include <stdio.h>

void main()
{
   //sizeof()
   
    float a=3.14;
 
    printf("int형의 크기는 %d바이트\n",sizeof(int)); // int형의 크기는 4바이트
    
    printf("float형 변수 a의 크기는 %d바이트\n",sizeof(a)); // float형 변수 a의 크기는 4바이트
    
    //형변환(cast)
    
    int b=3, c=4;
    double d;
    d = (double)b/c;
    printf("나눗셈 결과는 %f\n",d); //나눗셈의 결과는 0.750000
}

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

[C] 배열  (1) 2024.05.02
[C] 기억 클래스  (1) 2024.04.26
[C] 함수  (0) 2024.04.26
[C] goto문  (0) 2024.04.26
[C] 표준 입출력 함수  (0) 2024.04.26