파게로그

연산자 본문

콤퓨타 왕기초/C

연산자

파게 2021. 3. 10. 01:42

 

우선순위 연산자 설명 연산자 결합 법칙
1 ++   -- 후위 증감 연산자
() 함수 호출  
[] 배열 첨자  
. 구조체, 공용체 멤버 접근자  
-> 구조체, 공용체 멤버 접근자(포인터)  
2 ++   -- 전위 증감 연산자
  +   - 단항(unary) 연산자  
!   ~ 논리/비트 부정(NOT) 연산자  
(자료형) 자료형 캐스팅  
* 역참조(간접참조)  
& 주소(address-of)  
sizeof 피연산자의 크기(size-of)  
3 *   /   % 곱하기, 나누기(몫), 나머지
4 +   - 덧셈, 뺄셈
5 <<   >> 왼쪽, 오른쪽 비트 이동 연산자
6 <   <= 비교 연산자
>   >=    
7 ==   != 비교 연산자
8 & 비트 AND 연산자
9 ^ 비트 XOR 연산자
10 | 비트 OR 연산자
11 && 논리 AND 연산자
12 || 논리 OR 연산자
13 ?: 삼항(tenary) 연산자
14 = 대입 연산자
+=   -= 덧셈, 뺄셈 후 대입  
*=   /=   %= 곱셈, 나눗셈(몫), 나눗셈(나머지) 후 대입  
<<=   >>= 비트 이동 후 대입  
&=   ^=   |= 비트 연산 후 대입  
15 , 콤마

 

f() + g() * h()에서 함수 호출 순위는 관련이 없음

 

 

sizeof

 

sizeof()는 피연산자의 크기를 바이트로 반환해주는 연산자.

C에서 바이트의 크기는 char의 크기이므로.. sizeof(char)는 무조건 1

sizeof(char_arr)는 배열의 바이트 크기 반환

 

- 함수가 아니라 연산자이며, 실행 중이 아니라 컴파일 중 평가된다.

- 컴파일할 때 모르는 크기는 찾아줄 수 없음

- 부호 없는 정수형의 상수를 반환하는데 size_t형임

 

size_t get_char_array_size(char data[])
{
	return sizeof(data);
}

int main(int argc, char** argv) {
	char char_array[30];
    
    size_t size_array = sizeof(char_array); /* 30 */
    size_t size_array_2 = get_char_array_size(char_array); /* 4 */
    
    return 0;
}

 

 

역 참조 연산자 *

int num=10;

int* p = &num; /* 역 참조 연산자 X. 포인터 변수 선언 O */

int num1 = *p; /* 역 참조 연산자 O */

 

 

 

 

'콤퓨타 왕기초 > C' 카테고리의 다른 글

bool expression  (0) 2021.03.10
size_t  (0) 2021.03.10
C89(C90)에서의 변수 선언 위치  (0) 2021.03.09
열거형  (0) 2021.03.09
자료형  (0) 2021.03.08
Comments