Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / C / C++ / Введение в язык C++ / Турне по C++ /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Выражения и Операторы - Программирование от RIN.RU
Выражения и Операторы



Оператор while


Рассмотрим копирование строки, когда заданы указатель p на ее первый символ и указатель q на целевую строку. По соглашению строка оканчивается символом с целым значением 0.


while (p != 0) {
*q = *p; // скопировать символ
q = q+1;
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




<<<  Назад
 1  2  3 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Комментарии

Типы и Описания

Функции

Структура программы

Классы

Перегрузка операций

Конструкторы

Вектора

Inline-подстановка

Производные классы

Еще об операциях

Друзья (friends)

Обобщенные Вектора

Полиморфные Вектора

Виртуальные функции

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь