KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Владимир Волков - Программирование для карманных компьютеров

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Владимир Волков, "Программирование для карманных компьютеров" бесплатно, без регистрации.
Перейти на страницу:

Рнструкция statement будет выполняться РґРѕ тех РїРѕСЂ, РїРѕРєР° будет выполняться условие condition. for Рнструкция for предназначена для организации параметрического цикла. Синтаксис этой инструкции приведен ниже.

for (<initialization>]; <condition>]; <increment>]) <statement>

В секции <initialization> выполняется инициализация переменной цикла, в секции <condition> устанавливается условие, а в секции <increment> обуславливается механизм изменения переменной цикла. Блок инструкций <statement> является телом цикла. Пока условие соблюдается <condition>, цикл будет выполняться. Пример инструкции for приведен ниже.

for (int i = 0; i < 10; i++){

sprintf(nn, В«%dВ», i);

strcat(mm, nn);

strcat(mm, " ");

}

break

Рнструкция break прерывает выполнение инструкций switch, for, while или do Рё передает управление следующему блоку инструкций.

continue

Эта инструкция прерывает только текущую итерацию цикла и передает управление следующей итерации.

goto Рнструкция goto предназначена для передачи управления РЅР° произвольную инструкцию программы, которая должна быть помечена соответствующей меткой. Это может быть РІ том числе Рё инструкция объявления имени. Заметим, что метка может быть только локальной, РІ качестве метки может выступать любое необъявленное РґРѕ СЃРёС… РїРѕСЂ РёРјСЏ СЃ двоеточием после него. Синтаксис конструкции приведен ниже.

identifier:

…

goto <identifier>;

return Эта инструкция предназначена для выхода из текущей функции и возврата в то место, откуда эта функция была вызвана. При необходимости она может возвращать значение. Синтаксис этой конструкции приведен ниже.

return [<expression>];

Пример этой инструкции выглядит достаточно просто.

double sqr(double x)

{

return (x*x);

}

Указатели

Указатель – это объект, хранящий в себе адрес некоей области памяти, в которой располагается переменная или иной объект. Но кроме адреса указатель еще хранит в себе тип объекта, на который указывает. Обычно различают указатели на объекты и указатели на функции. Оба типа указателей – специальные объекты для хранения адресов памяти. Эти два класса имеют различающиеся свойства, назначения и правила манипуляции ими.

Указатели на функции используются для того, чтобы осуществлять доступ к функциям и передавать функции как параметры для других функций. Для указателей на функции нельзя использовать арифметику указателей. Для указателей на объект , напротив, постоянное уменьшение и увеличение являются стандартной операцией для сканирования массивов и других структур данных в памяти.

В С++ указатель всегда имеет тип. Указателя без типа не может существовать. Указатель всегда указывает или на функцию, или на объект какого-то типа. Даже если указатель нетипизирован, он должен иметь тип void*.

Может быть нулевой указатель, который гарантированно указывает на адрес в памяти, который не может указать ни один другой указатель. То есть нулевой указатель ни на что не указывает. Присвоение указателю константы 0 делает его нулевым указателем.

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

type *ptr;

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

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

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

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

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

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

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

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

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

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

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

Массивы

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

type declarator <constant-expression>]

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

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

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*