Вход/Регистрация
Программирование на Objective-C 2.0
вернуться

Кочан Стивен

Шрифт:

При условии, что I модифицируемое lvalue-выражение, тип которого не уточнен как const;

выражение ++I увеличивает I на 1, после чего I используется как значение выражения; I++ использует I как значение выражения и затем увеличивает I на 1; --I уменьшает I на I, после чего I используется как значение выражения; I-- использует I как значение выражения и затем уменьшает 1 на I.

Ниже в разделе «Базовые операции с указателями» описываются эти операции с указателями. Операторы присваивания

При условии, что I модифицируемое lvalue-выражение, тип которого не уточнен как const; op любой оператор, который можно использовать как оператор присваивания (см. таблицу В.4); а выражение;

выражение I = а сохраняет значение а в I; I ор= а применяет орк I и а, сохраняя результат в I.

Если в первом выражении а имеет один из базовых типов данных (за исклю-чением void), то а преобразуется для соответствия типу I. Если I - указатель, то а должен быть указателем того же типа, void-указателем или null-указателем.

Если I — void-указатель, то а может быть указателем любого типа. Второе выражение интерпретируется как I = I ор (а), за исключением того, что I оценивается только один раз (например, в случае x[i++] += 10). Условный оператор

При условии, что а, Ь, с выражения;

выражение а ? b: с получает значение Ь, если а отлично or нуля, или с в противном случае. Вычисляется только выражение b или с.

Выражения Ь и с должны иметь одинаковый тип данных. Если это не так, но оба выражения имеют арифметические типы данных, то применяются обычные арифметические преобразования, чтобы сделать их типы одинаковыми. Если одно из них является указателем, а другое равно 0, то второе выражение используется как null-указатель того же типа, что и первое. Если одно из них является указателем на void, а другое является указагелем на другой тип, то вто-рое преобразуется в указатель на void и результат имеет такой же тип. Оператор приведения типа

При условии, что тип имя какого-либо базового типа данных, перечислимый тип данных (с ключевым словом enum) или тип, определенный как typedef либо приведенный тип данных; а выражение;

выражение ( тип) преобразует а в указанный тип.

Отметим, что использование типа в круглых скобках при объявлении или определении метода не является примером использования оператора приведе-ния типа. Оператор sizeof

При условии, что тип совпадает с описанием в предыдущем разделе; а выражение;

выражение sizeof (тип) имеет значение, равное числу байтов памяти, необходимых для зна-чения указанного типа; sizeof а имеет значение, равное числу байтов памяти, необходимых для ре-зультата вычисления а.

Для типа char результат по определению равен 1. Если а — имя массива, для которого задан размер (явным образом или неявно через инициализацию), и это не формальный параметр и не extern-массив, для которого не указан размер, то sizeof а дает число байтов, необходимых для хранения этих элементов в а.

Если а — имя класса, то sizeof (а) дает размер структуры, необходимой для хранения экземпляра а.

Целое значение, которое дает оператор sizeof, имеет тип size_t, который определен в стандартном header-файле .

Если а — массив переменной длины, то данное выражение вычисляется на этапе выполнения; в противном случае оно вычисляется на этапе компиляции и его можно использовать в константных выражениях (см. выше раздел «Кон-стантные выражения»). Оператор «запятая»

При условии, что а, b выражения;

выражение а, Ь означает вычисление а и затем вычисление Ь. Результирующее выражение имеет тип и значение b. Базовые операции с массивами

При условии, что а объявляется как массив из п элементов; i выражение любого целого типа данных; v выражение;

выражение а[0] является ссылкой на первый элемент а; а[n -1] является ссылкой на последний элемента; a[i] является ссылкой на элемент а с номером i; a[i] = v сохраняет значение v в ар].

В каждом случае тип результата совпадает с типом элементов, содержащихся в а. Сводку операций с указателями и массивами см. ниже в разделе «Базовые операции с указателями». Базовые операции со структурами

Примечание. Эго также относится к объединениям (union).

При условии, что х модифицируемое lvalue-выражение типа struct s; у выражение типа struct s; m имя одно из компонентов структуры S; obj любой объект; М любой метод; v выражение;

выражение х является ссылкой на всю структуру и имеет тип struct s; y.m является ссылкой на компонент m структуры у и имеет тип, объявленный для компонента т; x.m = v присваивает v компоненту m выражения х и имеет тип, объявленный для компонента т; х = у присваивает х значение у и имеет тип struct s; f (у) вызывает функцию f, передавая как аргумент содержимое структуры у (внутри f должен быть объявлен формальный параметр типа struct s); [obj М: у] вызывает метод М для объекта obj, передавая как аргумент содержимое структуры у (внутри метода этот параметр должен быть объявлен как тип struct s); return у; возвращает структуру у (возвращаемое значение, объявленное для функции или метода, должно иметь тип struct s). Базовые операции с указателями

  • Читать дальше
  • 1
  • ...
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: