Случайный афоризм
В поэтическом произведении предпочтительнее вероятное невозможное, чем невероятное, хотя и возможное.
 
новости
поиск по автору
поиск по тематике
поиск по ключевому слову
проба пера
энциклопедия авторов
словарь терминов
программы
начинающим авторам
ваша помощь
о проекте
Книжный магазин
Главная витрина
Книги компьютерные
Книги по психологии
Книги серии "Для чайников"
Книги по лингвистике
ЧАВо
Разные Статьи
Статьи по литературе

Форма пользователя
Логин:
Пароль:
регистрация
 детектив



 драмма



 животные



 история



 компьютерная документация



 медицина



 научно-популярная



 очередная история



 очерк



 повесть



 политика



 поэзия и лирика



 приключения



 психология



 религия



 студенту



 технические руководства



 фантастика



 философия и мистика



 художественная литература



 энциклопедии, словари



 эротика, любовные романы



в избранноеконтакты

Параметры текста
Шрифт:
Размер шрифта: Высота строки:
Цвет шрифта:
Цвет фона:

В вызове  f1 два  параметра,  v[i]  и  i++,  и  порядок  вычисления
выражений-параметров неопределен.  Зависимость  выражения-параметра
от  порядка   вычисления    -  это  очень  плохой  стиль,  а  также
непереносимо. В  вызове f2  один  параметр,  выражение  с  запятой,
которое эквивалентно i++.
  С помощью  скобок нельзя  задать  порядок  вычисления.  Например,
a*(b/c) может  вычисляться и  как (a*b)/c,  поскольку *  и /  имеют
одинаковый  приоритет.   В  тех   случаях,  когда   важен   порядок
вычисления,  можно  вводить  дополнительную  переменную,  например,
(t=b/c,a*t).

     3.2.2 Увеличение и уменьшение*

  Операция ++  используется для  явного выражения приращения вместо
его  неявного   выражения   с   помощью   комбинации   сложения   и
присваивания. По  определению ++lvalue  означает lvalue+=1,  что  в
свою очередь  означает lvalue=lvalue+1  при условии,  что lvalue не
вызывает  никаких   побочных  эффектов.   Выражение,   обозначающее
(денотирующее) объект,  который должен  быть увеличен,  вычисляется
один раз  (только). Аналогично, уменьшение выражается операцией --.
Операции ++  и  --  могут  применяться  и  как  префиксные,  и  как
постфиксные. Значением  ++x является  новое (то  есть  увеличенное)
значение x.  Например, y=++x  эквивалентно y=(x+=1).  Значение x++,
напротив, есть  старое значение  x.  Например,  y=x++  эквивалентно
y=(t=x,x+=1,t), где t - переменная того же типа, что и x.
  Операции приращения  особенно полезны для увеличения и уменьшения
переменных в  циклах. Например,  оканчивающуюся нулем  строку можно
копировать так:

  inline void cpy(char* p, const char* q)
  {
      while (*p++ = *q++) ;
  }
____________________
  * Следовало  бы переводить  как "инкремент" и "декремент", однако
мы следовали  терминологии, принятой  в переводной литературе по C,
поскольку эти операции унаследованы от C. (прим. перев.)

                             - стр 94 -

Напомню,  что  увеличение  и  уменьшение  указателей,  так  же  как
сложение  и   вычитание  указателей,   осуществляется  в   терминах
элементов вектора,  на которые  указывает указатель; p++ приводит к
тому, что p указывает на следующий элемент. Для указателя p типа T*
по определению выполняется следующее:

  long(p+1) == long(p)+sizeof(T);

     3.2.4 Побитовые логические операции

  Побитовые логические операции

  &    |    ^    ~    >>    <<

применяются к целым, то есть к объектам типа char, short, int, long
и их unsigned аналогам, результаты тоже целые.
  Одно из  стандартных применений  побитовых логических  операций -
реализация маленькиого  множества (вектора  битов). В  этом  случае
каждый бит  беззнакового целого представляет один член множества, а
число  членов   ограничено  числом   битов.  Бинарная   операция  &

1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : 20 : 21 : 22 : 23 : 24 : 25 : 26 : 27 : 28 : 29 : 30 : 31 : 32 : 33 : 34 : 35 : 36 : 37 : 38 : 39 : 40 : 41 : 42 : 43 : 44 : 45 : 46 : 47 : 48 : 49 : 50 : 51 : 52 : 53 : 54 : 55 : 56 : 57 : 58 : 59 : 60 : 61 : 62 : 63 : 64 : 65 : 66 : 67 : 68 : 69 : 70 : 71 : 72 : 73 : 74 : 75 : 76 : 77 : 78 : 79 : 80 : 81 : 82 : 83 : 84 : 85 : 86 : 87 : 88 : 89 : 90 : 91 : 92 : 93 : 94 : 95 : 96 : 97 : 98 : 99 : 100 : 101 : 102 : 103 : 104 : 105 : 106 : 107 : 108 : 109 : 110 : 111 : 112 : 113 : 114 : 115 : 116 : 117 : 118 : 119 : 120 : 121 : 122 : 123 : 124 : 125 : 126 : 127 : 128 : 129 : 130 : 131 : 132 : 133 : 134 : 135 : 136 : 137 : 138 : 139 : 140 : 141 : 142 : 143 : 144 : 145 : 146 : 147 : 148 : 149 : 150 : 151 : 152 : 153 : 154 : 155 : 156 : 157 : 158 : 159 : 160 : 161 : 162 : 163 : 164 : 165 : 166 : 167 : 168 : 169 : 170 : 171 : 172 : 173 : 174 : 175 : 176 : 177 : 178 : 179 : 180 : 181 : 182 : 183 : 184 : 185 : 186 : 187 : 188 : 189 : 190 : 191 : 192 : 193 : 194 : 195 : 196 : 197 : 198 : 199 : 200 : 201 : 202 : 203 : 204 : 205 : 206 : 207 : 208 : 209 : 210 : 211 : 212 : 213 : 214 : 215 : 216 : 217 : 218 : 219 : 220 : 221 : 222 : 223 : 224 : 225 : 226 : 227 : 228 : 229 : 230 : 231 : 232 : 233 : 234 : 235 : 236 : 237 : 238 : 239 : 240 : 241 : 242 : 243 : 244 : 245 : 246 : 247 : 248 : 249 :
главная наверх

(c) 2008 Большая Одесская Библиотека.