연산자

Developer/C / C++ 2013. 8. 1. 11:38

증감연산자

전위형 : 문장이 수행되기전에 증가

후위형 : 문장이 수행된후 증가


int i=3;

printf("%d, %d\n", i, ++i);     => 출력결과 : 4, 4 

c는 함수의 인수를 뒤에서부터 순서대로 전달하기 때문에 ++i가 먼저 실행된다.


논리연산자

int i=1. i=2;


if(i==0 && ++j)                       // i==0이 아니기떄문에 if가 바로 다음라인으로 넘어가서 ++j가 실행되지 않는다.

     printf("&& short circuit : %d %d\n", i, j);

else 

     printf("&& short circuit : %d %d\n", i, j);

출력결과 : && short circuit : %d %d\n", 1, 2



연산자 우선 순위

if(2 & 2 !=0)  -----------------> if((2&2)!=0)

순위

종류

연산자

 연산 방향  

1

 괄호, 배열, 구조체 ( )  .  [ ]  ->  ::

좌→우

2

 단항 연산자 *(간접)  &(주소)  !  -  ++  --  +(부호)  -(부호)  sizeof  new  delete

우→좌

3

 구조체 결합연산자 .*  ->*

좌→우

4

 승제 연산자 *  /  %

좌→우

5

 가감 연산자 +  -

좌→우

6

 시프트(Shift) 연산자   <<  >>

좌→우

7

 비교 연산자 <  <=  >  >=

좌→우

8

 등가 연산자 ==  !=

좌→우

9

 비트 연산자 AND &

좌→우

10

 비트 연산자 XOR ^

좌→우

11

 비트 연산자 OR |

좌→우

12

 논리 연산자 AND &&

좌→우

13

 논리 연산자 OR ||

좌→우

14

 조건 연산자 ?:

우→좌

15

 대입 연산자 =  *=  /=  +=  -=  %=  <<=  >>=  &=  ^=  |=

우→좌

16

 나열 연산자 ,

좌→우


산술변환

int + double = double + double

int i, j;

double d;


i=3;

d=2.17;

j=i+d;              //j가 int형이 기때문에 5로 저장이 된다.

printf("j=%d\n", j);

출력결과 : j=5



sizeof 연산자

sizeof(array) / sizeof(array[0]) : 배열 요소의 개수






'Developer > C / C++' 카테고리의 다른 글

const 와 포인터  (0) 2013.08.01
배열을 포인터로 표현  (0) 2013.08.01
변수  (0) 2013.08.01
isspace()  (0) 2013.02.03
파일크기 측정방법  (0) 2012.11.25
Posted by No names
,