Какой эквивалент в Delphi pre-increment (++ i) в C ++ для команды? - PullRequest
0 голосов
/ 20 апреля 2019

Wha-эквивалент в Delphi этого синтаксиса c ++?

Обратите внимание, что i переменная увеличивается до.

for(int i = 0; i < 20; ++i)

Заранее спасибо.

РЕДАКТИРОВАТЬ:

В моем случае, вот как ++ i используется с синтаксисом выше:

void testStruct *testMethod()
{
   for(int i = 0; i < 20; ++i)
   {
      if(values[i].id == (DWORD) 10)
          return &values[i];
   }

   return NULL;
}

1 Ответ

5 голосов
/ 20 апреля 2019
for(int i = 0; i < 20; ++i)

Преинкремент по сравнению с постинкрементом здесь не имеет значения.Семантически это то же самое, что и

for(int i = 0; i < 20; i++)

В Delphi это будет

for i := 0 to 19 do

Предварительное увеличение имеет значение в выражениях, где используется значение переменной.Например,

x[++i] = 42;

отличается от

x[i++] = 42;

, поскольку значение ++i отличается от значения i++.Однако в вашем цикле C ++ for оператор предварительного увеличения используется исключительно для увеличения переменной цикла, а значение выражения не используется.

Просто чтобы прояснить это, если i равно 0 тогда ++i == 1 и i++ == 0.Но в цикле C ++ значение выражения приращения не используется, и единственной его точкой является побочный эффект приращения.

...