1
A
답변
1
연산자 우선 순위 테이블은 ->
이 캐스트보다 더 긴밀하게 바인딩됨을 나타냅니다.
typedef void *typeA;
typeB b;
typeA a = &b;
(typeB *)a->i; /* wrong: attempt to dereference a void pointer */
((typeB *)a)->i; /* ok */
나중에 참조 할 수있는 완전한 연산자 우선 순위 표가 아래에 나와 있습니다. 표에서 목록의 상위에있는 연산자는 목록의 하위에있는 연산자보다 더 엄격하게 바인딩됩니다 (주 표현 연산자가 가장 엄격하게 바인딩됩니다). 동일한 우선 순위의 연산자가 모호한 방식 (즉, ()
또는 []
과 같은 기본 표현식 연산자에서 캡처되지 않음)에서 동일한 표현식에 사용되는 경우 연결 순서에 따라 해결됩니다. 따라서, 예를 들어 식 :
7 + (3 - 5 * 2 + 15) - 6
은 (표)에 따라 순서대로 평가된다 : 물론
7 + (3 - 10 + 15) - 6 // evaluate * in()
7 + (-7 + 15) - 6 // evaluate - in() (it is left of the +)
7 + 8 - 6 // evaluate + in()
15 - 6 // evaluate + (it is left of the -)
9 // evaluate -
컴파일러는 다르게 계산을 수행 할 수없는, 그러나 그 결과는 반드시 우선 순위 규칙을 따를 때 얻은 결과와 일치해야합니다. C에서
Operator Type Operator(s) Associativity
============= =========== =============
Primary () [] . -> expr++ expr-- left-to-right
Expression
Operators
------------- ----------- -------------
Unary * & + - ! ~ ++expr --expr (typecast) sizeof right-to-left
Operators
------------- ----------- -------------
Binary */% left-to-right
Operators + -
>> <<
< > <= >=
== !=
&
^
|
&&
||
------------- ----------- -------------
Ternary ?: right-to-left
Operator
------------- ----------- -------------
Assignment = += -= *= /= %= >>= <<= &= ^= |= right-to-left
Operators
------------- ----------- -------------
Comma , left-to-right
============= =========== =============
0
는 -> operatior의 우선 순위는 캐스팅 (형명)
때문에 (b를 입력 *) P-> I는 (b를 입력 *) (P-> I)
보다 높다관련 문제
- 1. 우선 순위 연산자 우선 순위
- 2. JQuery 및 Facebook API 기능 우선 순위/우선 순위
- 3. 우선 순위 큐 임의 액세스
- 4. 스타일 시트와 파일 사이의 우선 순위 .ui?
- 5. C 프로그래밍 : 운영자 우선 순위 사이의 혼동
- 6. Java의 우선 순위 대기열?
- 7. Apache 및 RewriteRule 우선 순위
- 8. 테스트를 위해 우선 문자열 우선 순위 지정 우선 순위 변경
- 9. Jira : 우선 순위 및 우선 순위로 정렬
- 10. MySQL INSERT와 SELECT 우선 순위 우선 순위
- 11. 프로세스 우선 순위 대 스레드 우선 순위
- 12. 우선 순위
- 13. 우선 순위
- 14. 우선 순위 대기열 및 Mutability
- 15. 연산자 우선 순위 및 | 스칼라
- 16. 연산자 오버로드 및 우선 순위
- 17. 트리 및 우선 순위 큐
- 18. 페이지 로딩 및 우선 순위
- 19. iptables 및 모듈 우선 순위
- 20. 우선 순위 연산자 :> 및 ==
- 21. |, ~ 및 & 연산자의 연산자 우선 순위?
- 22. MySQL 우선 순위
- 23. 공유 리소스에 대한 우선 순위 기록기 액세스?
- 24. 자동 레이아웃 제한 우선 순위
- 25. WPF에서 우선 순위 우선 적용?
- 26. C++ 및 MQ의 네트워크 하드웨어 우선 순위
- 27. MySQL은 SELECT 우선 순위
- 28. Java 우선 순위 큐
- 29. Postgres의 우선 순위 선택문
- 30. 낮은 우선 순위 연산자는 연관성이없는 높은 우선 순위 연산자를 연결합니까?
코드에 여러 가지 문제가 있습니다. 컴파일 할 수 없습니다. 'typeA'와는 반대로'typeB'를 의미합니까? 'p'는 포인터가 아닙니다. 어떻게 캐스팅합니까? 셋째, int 형을 (typeB *)로 변환하려고 시도하는 것 같습니다. – greedybuddha
'typeA'는 포인터 유형이지만 질문자는 지정하지 않은 채로 두었습니다. – jxh
직접 질문을 게시하는 대신 자신을 위해 알아볼 수있는 여러 가지 방법이 있습니다. 예를 들어, 시도해보고 볼 수 있습니다. –