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

После того как указатель будет объявлен, его обязательно нужно инициализировать. В этом случае 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 символа.

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

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

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

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT