Читаем Программирование для карманных компьютеров полностью

После того как указатель будет объявлен, его обязательно нужно инициализировать. В этом случае type может быть любым типом, в том числе и пользовательским. Получившийся указатель будет трактоваться как указатель на объект типа, и после инициализации к этому указателю будут применимы все правила относительно видимости и времени жизни того объекта, на который он указывает.

Также один указатель можно присвоить другому. Правила этой операции достаточно просты и перечислены в следующем списке.

? Указателю типа void можно присвоить любой другой указатель.

? Никакому указателю не может быть присвоен указатель типа void.

? Указатель на объект и указатель на функцию не могут быть присвоены один другому.

? Указатели на объекты одного типа могут быть присвоены один другому.

? Указатели на объекты разного типа могут быть присвоены один другому только при соблюдении некоторых условий.

Помимо этого существует несколько правил арифметики указателей. Они, конечно, не являются обычными переменными, но язык C++ позволяет выполнять некоторые операции, которые приведены в следующем списке.

? Над указателями можно выполнять операцию инкремента и декремента. В этом случае указатель будет увеличиваться на размер объекта, на который он указывает.

? Указатели можно вычитать, но только в том случае, если это указатели на элементы одного и того же массива.

? Указатели можно сравнивать.

Массивы

Синтаксис объявления массива достаточно прост.

type declarator ]

Эта конструкция объявляет массив, состоящий из constant-expression элементов типа type. Следующий фрагмент кода можно рассматривать как пример объявления массивов.

float v[3]; //массив из трех элементов с плавающей точкой v[0], v[1], v[2] char* а[32]; //массив из 32 указателей на char а[0]…а[31]

Количество элементов массива не может изменяться после объявления. При необходимости объявить многомерный массив он объявляется массивом массивов, как это показано ниже.

int d[10][20];

Эта команда объявляет массив d из десяти массивов по 20 элементов типа int в каждом из них. Начальное значение массиву можно присвоить через указание списка значений.

int v1[] = {1, 3, 5, 7}; char v2[] = {\'a\',\'b\',\'d\',\'l\',0};

Если размер массива не объявлен, то он вычисляется по количеству инициализирующих элементов. Если размер объявлен, то количество элементов не может быть больше объявленного. Количество элементов может быть меньше объявленного, и в этом случае недостающие элементы инициализируются нулевым значением.

Массив удобно инициализировать строковым литералом. В C++, как и в С, в строковом литерале на один символ больше, чем используется при записи, таким образом, в строковом литерале «???» будет 4 символа.

Имя массива является указателем на его первый элемент. При направлении в строку массива символов, туда помещается содержащаяся в массиве строка. Если же мы отправим в строку массив, то туда будет помещен адрес первого элемента массива, а при разыменовании массива будет получено значение его первого элемента.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных