증감연산자
전위형 : 문장이 수행되기전에 증가
후위형 : 문장이 수행된후 증가
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 |