Содержание
- 2. План лекции Классы, приоритеты и ассоциативность операций языка Си Выражения l-value Порядок вычисления выражений, точки следования,
- 3. Обзор операций языка Си 1/3 Операции Си делятся на 5 классов по числу и расположению аргументов
- 4. Обзор операций языка Си 2/3 Операции связываются с аргументами по возрастанию своих приоритетов Приоритеты задаются целыми
- 5. Обзор операций языка Си 3/3 Ассоциативность бинарных операций задает расстановку скобок в выражениях, содержащих операции одного
- 6. Приоритеты операций в языке Си
- 7. Приоритеты операций в языке Си
- 8. Приоритеты операций в языке Си
- 9. Первичные выражения Идентификатор переменной или функции Константа Строковый литерал (является lvalue) Выражение, взятое в круглые скобки
- 10. Доступ к элементу массива A[k] A
- 11. Выражения и подвыражения ::= | ',' ::= | ::= '=' | '*=' | '/=' | '%='
- 12. Выражения и подвыражения ::= | '?' ':' ::= ::= | '||'
- 13. Выражения и подвыражения ::= | '&&' ::= | '|' ::= | '^'
- 14. Выражения и подвыражения ::= | '&' ::= | '==' | '!='
- 15. Выражения и подвыражения ::= | ' | '>' | ' | '>=' x >> 2 x
- 16. Выражения и подвыражения ::= | '>>' | ' ::= | '+' | '-' x + y
- 17. Выражения и подвыражения ::= | '*' | '/' | '%' (double)x x * y (x /
- 18. Выражения и подвыражения ::= | '(' ')' ::= | '++' | '--' | | 'sizeof' |
- 19. Выражения и подвыражения ::= | '[' ']' | '(' [ ] ')' | '.' | '->'
- 20. Выражения и подвыражения ::= | | | '(' ')' x 1.25f "ABCDEF" (x+y)
- 21. Выражения и подвыражения ::= | | |
- 22. Выражения и подвыражения ::= | ','
- 23. Выражения и подвыражения Классы, приоритеты и ассоциативность операций языка Си Далее Выражения l-value Порядок вычисления выражений,
- 24. Выражения l-value Ошибка или нет: (A[i] A[ A[i] Выражения языка Си, значениям которых гарантированно соответствует ячейка
- 25. Выражения l-value l-value получаются при следующих операциях Доступ к значению переменной Доступ через указатель * Доступ
- 26. Выражения l-value Операции, требующие l-value Левый аргумент во всех видах присваивания =, += и т.п. Взятие
- 27. Выражения l-value Пример 1 int x; x = 2; // x – l-value int A[10]; A[5]
- 28. Точки следования, побочные эффекты Побочный эффект вычисления выражения – это факт изменения содержимого ячеек памяти в
- 29. Точки следования, побочные эффекты Точка следования (sequence point) -- точка программы, в которой гарантируется, что все
- 30. Точки следования, побочные эффекты Между вычислением левого и правого аргументов в операциях &&, || и ,
- 31. Точки следования, побочные эффекты Пример 1 while (*p++ != 0 && *q++ != 0) *p =
- 32. Точки следования, побочные эффекты Пример 2 int A[3] = {1,0,2}, *p = A; int a =
- 33. Точки следования, побочные эффекты Пример 3 int i = 0, j = i++, k = i++;
- 34. Неявные преобразования типов Над числами Над указателями Других нет
- 35. Неявные преобразования чисел Если какой-либо из аргументов имеет тип long double, то другой приводится к long
- 36. Неявные преобразования чисел Целочисленное повышение Значения типов enum, signed char, short int, unsigned char, unsigned short
- 37. Неявные преобразования чисел Целочисленные преобразования из типа со знаком ST в тип без знака UT Если
- 38. Неявные преобразования чисел Преобразования целые числа с плавающей точкой С плавающей точкой --> целое Дробная часть
- 39. Неявные преобразования чисел Преобразования чисел с плавающей точкой из типа F1 в F2 Если sizeof(F1) Если
- 40. Неявные преобразования указателей В операциях присваивания и сравнения целочисленное константное выражение со значением 0 автоматически преобразуется
- 41. Неявные преобразования указателей В операциях присваивания и сравнения указатель на значение типа T автоматически преобразуется в
- 42. Неявные преобразования указателей Указатель типа void * автоматически преобразуется к указателю любого типа Если результат подвергнуть
- 43. Явные преобразования указателей Для указателей допускаются и другие преобразования, но в связи с ними возникает проблема
- 45. Скачать презентацию