'Arithmetic operator'에 해당되는 글 1건

  1. 2010.03.24 C - 연산자
posted by Solver Full-stack Developer 2010.03.24 20:35

1.산술 연산자 (Arithmetic operator)

가감승제 연산자: [+->+] [-->-] [×->*] [÷->/] 붉게 표시한 연산자로 사용
나머지 연산자   : % 왼쪽값을 오른쪽값으로 나눈 후 그 나머지 (ex.10%3을 하면 그 값은 1이된다.)
 ♧ int num1 =10;
     int num2 =5;
    ①num1 = num1+num2;
    ②num1+=num2; 
   
    ♣①,②는 겉보기에는 다른 연산처럼 보이지만 연산하는 결과는 동일
       ②는 ①을 줄여표기한 것이다.(내용 동일)
       +=, -=, *=, /= 위와 같은 식으로 사용



2.치환(대입) 연산자(Assignment operator)
대입 : =
 ♧ int num;
     num = 10;  
     ♣진행방향 :  오른쪽에서 왼쪽 (num에 10을 대입)



3.증감 연산자(Increment&Decrement operator)
증가 : ++ (1증가)
감소 : -- (1감소)

int num=10;
   
    printf("%d\n",num);       10이 출력
    printf("%d\n",num++);    ++이 뒤에 붙을경우 효과는 다음줄부터 유효, 따라서 10
    printf("%d\n",num);       윗줄의 ++영향으로 11출력
    printf("%d\n",++num);    ++이 앞에 붙을경우 해당 줄에서 유효, 따라서 12

    출력 : 10
             10
             11
             12



4.관계 연산자(Relation & Equailty operator)
관계 연산자 : <, >, <= (수학에서 ≤의미), >= (수학에서 ≥의미), ==
※C에서는 ==는 수학에서 '같을때'의미이며, =는 '대입'을 의미한다.

관계연산자는 for, while, if~else if 등과같은 조건문에서 사용한다.


5.논리 연산자
논리 연산자 : &&(And), ||(Or), !(Reversal)

int num = 10;
  
   if(num != 1) num은 1과 같지(==) 않기(!=)때문에 참
   {
printf("True!\n");     출력!
   }
           ①                   ②
   if(++num==10 && --num == 10) &&(And)는 ①에서 같지않다면 조건문에서 나온다.(&&는 ①, ② 둘다 참이여야 참이
   {                                                                                                               이기)

printf("num : %d\n",num);
   }               ③                   ④
   else if(++num == 10 || --num == 10) 반면에 ||(Or)은 ③이 거짓이다면 ④를 수행한다. 만약 ③ 참이라면 바로
   {                                                  아래 블록({})을 실행한다.
printf("num : %d\n",num);
   }
   
   printf("num : %d\n",num);

출력 :  True!
          num : 11

해설 : 처음 if문에서 num은 1이 아니기에 참임으로 True!를 출력한다.
         
①은 ++num으로 11이되고 10이 아니고 &&연산자임으로 ②를 수행하지 않고  if문을 나온다.
         ③에서 ++num으로 12가되고 10이아니기에 거짓이지만 ||연사자임으로 ④를 수행하여 11이된다.
         하지만 11은 10이 아님으로 거짓으로 else if문을 나온다.
         그리하여 마지막 printf문을  수행하여 num : 11이 출력된다.


♧위 소스에서 첫번째 if문에서 num != 1은 !(Reversal)을 이용해 !(num ==1) 으로 표현가능하다.
num은 1과 같지않아 거짓이지만 !를 이용하여 거짓으로 반전시키면 참이된다.


6.기타 연산자
피연산자의 크기를 알려주는 연산자 : sizeof
캐스트 연산자                              : (Type)

char name[10];
   double ang = 12.795138462; 

   printf("sizeof : %d * 10 = %d\n",sizeof(char),sizeof(name));  char의 크기는 1, name의크기는 1byte(char형)*10
   printf("cast   : %d\n",(int)ang); double형을 int형으로 강제형변환 시켜서 소수점이 없어지고 12만 남게 된다. 

출력 : sizeof : 1 * 10 = 10
         cast   : 12
신고

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

C - 기초 문법, 구성요소  (0) 2010.08.11
C - 루프  (0) 2010.04.20
C - 연산자  (0) 2010.03.24
C - 변수와 상수  (0) 2010.03.24
C - 주석  (0) 2010.03.22
C - 기본구조  (0) 2010.03.22