일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 슈퍼탱크럼블
- 컴퓨터일반
- 천주교
- 슈퍼탱크대작전
- 티스토리챌린지
- 끄적끄적
- 해남버스터미널
- 정보
- 버스시간표
- c언어
- 일기처럼 보이는 잡글
- 일기처럼 보이는 뻘글
- 정보보호론
- 오블완
- 오늘의토픽
- 육아일기
- swap
- 가톨릭
- Lover
- 반복문
- 말씀새기기
- 광주-해남
- 해남종합버스터미널
- NICU
- 잡담만설
- 전산직
- 일상
- 추가채용
- 리안이
- 설계도
Archives
- Today
- Total
리안이와 함께하는 세상
[프로그래밍언어, C] 포인터 변수와 연산자 우선순위 본문
책이 따로 한 권이 나와있을 정도로 포인터는 C언어에서 매우 중요하면서도 가장 헷갈리는 개념이다.
포인터연산자의 우선순위는 어디 쯤일까?
Symbol1 | 연산 형식 | 결합성 |
---|---|---|
[ ] ( ) . –>후위 ++ 및 후위 –– | 식 | 왼쪽에서 오른쪽 |
전위 ++ 및 전위 –– sizeof & * + – ~ ! | 단항 | 오른쪽에서 왼쪽 |
형식 캐스팅 | 단항 | 오른쪽에서 왼쪽 |
* / % | 곱하기 | 왼쪽에서 오른쪽 |
+ – | 더하기 | 왼쪽에서 오른쪽 |
<< >> | 비트 시프트 | 왼쪽에서 오른쪽 |
< > <= >= | 관계 | 왼쪽에서 오른쪽 |
== != | 같음 | 왼쪽에서 오른쪽 |
& | 비트 AND | 왼쪽에서 오른쪽 |
^ | 비트 제외 OR | 왼쪽에서 오른쪽 |
| | 비트 포함 OR | 왼쪽에서 오른쪽 |
&& | 논리 AND | 왼쪽에서 오른쪽 |
|| | 논리 OR | 왼쪽에서 오른쪽 |
? : | 조건식 | 오른쪽에서 왼쪽 |
= *= /= %= += –= <<= >>=&= ^= |= | 단순 및 복합 할당2 | 오른쪽에서 왼쪽 |
, | 순차적 계산 | 왼쪽에서 오른쪽 |
연산자는 내림차순 우선 순위로 나열됩니다. 여러 연산자가 같은 줄 또는 그룹에 표시된 경우, 해당 연산자는 우선 순위가 같습니다.
모든 단순 및 복합 할당 연산자의 우선 순위는 같습니다.
(출처 : https://msdn.microsoft.com/ko-kr/library/2bxt6kc4.aspx )
위에서 볼 수 있듯. 포인터 연산자는 단항연산자로 표에서 두번째에 위치하고 있다. 즉, 매우 우선순위가 높다는 뜻. 그렇기 때문에 포인터변수보다 먼저 연산하는 연산자는 후위 증감연산자(++,--) 뿐이다.(1) 그래서 후위연산으로 포인터 변수가 가리키는 값을 증가시키기 위해서는 포인터 변수를 괄호로 묶어주어야 한다.(2) 전위 증감연산자는 포인터 연산자와 우선순위가 같기 때문에 변수에 가까이 있는 연산자 순으로 계산이 진행된다. (3)(4)
ex)
(1) *ptr++ > *(ptr++)
(2) (*ptr)++
(3) ++*ptr > ++(*ptr)
(4) *++ptr > *(++ptr)
'9급 공무원 > 컴퓨터 일반' 카테고리의 다른 글
[데이터통신] 공개키 기반구조(PKI) 구성요소 (0) | 2017.12.13 |
---|---|
[프로그래밍언어, C] Type Casting(타입캐스팅, 형 변환) (0) | 2017.03.12 |
[인터넷] Ajax(Asynchronous Javascript and XML) (0) | 2017.03.10 |
[인터넷] P3P(Platform for Privacy Preferences) (0) | 2017.03.10 |
[인터넷] 웹 캐시(Web Cache) (0) | 2017.03.10 |