Статья: Выражения и Операторы

p = p+1;

}

*q = 0; // завершающий символ 0 скопирован не был

Следующее после while условие должно быть заключено в круглые скобки. Условие вычисляется, и если его значение не ноль, выполняется непосредственно следующий за ним оператор. Это повторяется до тех пор, пока вычисление условия не даст ноль.

Этот пример слишком пространен. Можно использовать операцию ++ для непосредственного указания увеличения, и проверка упростится:

while (*p) *q++ = *p++;

*q = 0;

где конструкция *p++ означает: "взять символ, на который указывает p, затем увеличить p."

Пример можно еще упростить, так как указатель p разыменовывается дважды за каждый цикл. Копирование символа можно делать тогда же, когда производится проверка условия:

while (*q++ = *p++) ;

Здесь берется символ, на который указывает p, p увеличивается, этот символ копируется туда, куда указывает q, и q увеличивается. Если символ ненулевой, цикл повторяется. Поскольку вся работа выполняется в условии, не требуется ни одного оператора. Чтобы указать на это, используется пустой оператор. C++ (как и C) одновременно любят и ненавидят за возможность такого чрезвычайно краткого ориентированного на выразительность программирования.

Оператор for

Рассмотрим копирование десяти элементов одного вектора в другой:

for (int i=0; i<10; i++) q[i]=p[i];

Этоэквивалентно

int i = 0;

while (i<10) {

q[i] = p[i];

i++;

}

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

Например:

for (i=0; i<10; i++) q[i]=p[i];

тоже эквивалентно предыдущей записи при условии, что i соответствующим образом описано раньше.

Описания

Описание - это оператор, вводящий имя в программе. Оно может также инициализировать объект с этим именем. Выполнение описания означает, что когда поток управления доходит до описания, вычисляется инициализирующее выражение (инициализатор) и производится инициализация. Например:

for (int i = 1; i

К-во Просмотров: 200
Бесплатно скачать Статья: Выражения и Операторы