Приложения. Хрестоматия по программированию на Си в Unix
9. Приложения.
Таблица приоритетов операций языка C++
Операции, расположенные выше, имеют больший приоритет.
1. () [] -> :: . | Left to right |
2. ! ~ + - ++ -- & * (typecast) sizeof new delete | Right to left |
3. .* ->* | Left to right |
4. * / % | Left to right |
5. + - | Left to right |
6. << >> | Left to right |
7. < <= > >= | Left to right |
8. == != | Left to right |
9. & | Left to right |
10. ^ | Left to right |
11. | | Left to right |
12. && | Left to right |
13. | Left to right |
14. ?: (условное выражение) | Right to left |
15. = *= /= %= += -= &= ^= |= <<= >>= | Right to left |
16. , | Left to right |
Здесь "*" и "&" в строке 2 - это адресные операции; в строке 2 "+" и "-" - унарные; "&" в строке 9 - это побитное "и"; "(typecast)" - приведение типа; "new" и "delete" операторы управления памятью в C++.
Ассоциативность Left to right (слева направо) означает группировку операторов таким образом:
A1 @ A2 @ A3 это ((A1 @ A2) @ A3)
Ассоциативность Rigth to left (справа налево) это
A1 @ A2 @ A3 это (A1 @ (A2 @ A3))
Правила преобразований типов.
В выражениях.
signed char --> int расширением знакового бита (7) unsigned char --> int дополнением нулями слева short --> int расширением знакового бита (15) unsigned short --> unsigned int дополнением нулями слева enum --> int порядковый номер в перечислимом типе float --> double дробная часть дополняется нулями
если есть то другой результат операнд типа приводится к типу имеет тип if(double) -->double double else if(unsigned long) -->unsigned long unsigned long else if(long) -->long long else if(unsigned int) -->unsigned int unsigned int else оба операнда имеют тип int int
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий