Что такое оператор «->» в C ++?

Если результаты получены из запроса mysql, более эффективно ограничить непосредственно результат mysql:

select [...] from [...] order by [...] limit 0,10

, где 10 - максимальное количество строк, которые вы хотите

8468
задан 28 revs, 20 users 35% 13 February 2017 в 08:32
поделиться

15 ответов

-> не оператор. Фактически это два отдельных оператора, - и > .

Код условия уменьшает x , возвращая x ' s исходное (не уменьшенное) значение, а затем сравнивает исходное значение с 0 с помощью оператора > .

Чтобы лучше понять, оператор может быть записан следующим образом:

while( (x--) > 0 )
8243
ответ дан 22 November 2019 в 19:37
поделиться

(x --> 0) средства (x-- > 0)

  1. можно использовать (x -->)
    output -: 9 8 7 6 5 4 3 2 1 0

  2. , можно использовать (-- x > 0), Это среднее (--x > 0)
    output -: 9 8 7 6 5 4 3 2 1

  3. , можно использовать
(--\
    \
     x > 0)

output -: 9 8 7 6 5 4 3 2 1

  1. , можно использовать
(\
  \
   x --> 0)

output -: 9 8 7 6 5 4 3 2 1 0

  1. , можно использовать
(\
  \
   x --> 0
          \
           \
            )

output -: 9 8 7 6 5 4 3 2 1 0

  1. , можно использовать также
(
 x 
  --> 
      0
       )

output -: 9 8 7 6 5 4 3 2 1 0

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

1
ответ дан Kalana 4 October 2019 в 06:56
поделиться
  • 1
    Я могу помнить игру с 1978 на TRS80, который капризничал бы случайным образом, если бы защита от копирования была удалена. Была только 1 проверка достоверности, и удаление ее означало, что Вы могли свободно скопировать игру, но странные ошибки геймплея wouldn' t происходят на законных копиях, только на взломанных копиях. Никакая мысль, что это был developer' s дают сбой..., мы знали то, что произошло. – Fixee 9 April 2011 в 04:20

В любом случае, у нас теперь есть оператор перехода. «->» легко запомнить как направление, а «пока x стремится к нулю» - прямое значение.

Кроме того,

236
ответ дан 22 November 2019 в 19:37
поделиться
while( x-- > 0 )

- вот как это разбирается.

353
ответ дан 22 November 2019 в 19:37
поделиться

Это

#include <stdio.h>
int main(void){
     int x = 10;

     while( x-- > 0 ){ // x goes to 0

       printf("%d ", x);
     }

     return 0;
}

Просто пространство заставляет вещи выглядеть смешно, - уменьшает, а > сравнивает.

534
ответ дан 22 November 2019 в 19:37
поделиться

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

while (x-- > 0)

x - (пост-декремент) эквивалентно x = x-1 , поэтому код преобразуется в:

while(x > 0) {
    x = x-1;
    // logic
}
1240
ответ дан 22 November 2019 в 19:37
поделиться

Это очень сложный оператор, поэтому даже ISO / IEC JTC1 (Объединенный технический комитет 1) поместил его описание в двух разных частях стандарта C ++.

Шутка. помимо этого, это два разных оператора: - и > , описанные соответственно в §5.2.6 / 2 и §5.9 стандарта C ++ 03.

2332
ответ дан 22 November 2019 в 19:37
поделиться

Использование -> имеет историческое значение. Уменьшение было (и остается в некоторых случаях) быстрее, чем увеличение на архитектуре x86. Использование -> предполагает, что x будет равно 0 , и обращается к тем, кто имеет математический опыт.

411
ответ дан 22 November 2019 в 19:37
поделиться

Этот код сначала сравнивает x и 0, а затем уменьшает x. (Также сказано в первом ответе: вы уменьшаете x, а затем сравниваете x и 0 с помощью оператора > .) См. Вывод этого кода:

9 8 7 6 5 4 3 2 1 0

Теперь мы сначала сравниваем, а затем уменьшаем увидев на выходе 0.

Если мы хотим сначала уменьшить, а затем сравнить, используйте этот код:

#include <stdio.h>
int main(void)
{
    int x = 10;

    while( --x> 0 ) // x goes to 0
    {
        printf("%d ", x);
    }
    return 0;
}

Этот результат:

9 8 7 6 5 4 3 2 1
216
ответ дан 22 November 2019 в 19:37
поделиться

Между -- и > не хватает места. x уменьшается после проверки условия x>0 ?.

.
143
ответ дан 22 November 2019 в 19:37
поделиться

Это в точности то же самое, что

while (x--)
{
   printf("%d ", x);
}

для неотрицательных чисел

.
262
ответ дан 22 November 2019 в 19:37
поделиться

Мой компилятор распечатает 9876543210, когда я запущу этот код.

#include <iostream>
int main()
{
    int x = 10;

    while( x --> 0 ) // x goes to 0
    {
        std::cout << x;
    }
}

Как и ожидалось. На самом деле while( x-- > 0 ) означает while( x > 0). Пост декретов x-- x.

while( x > 0 ) 
{
    x--;
    std::cout << x;
}

- это другой способ написания одного и того же.

Приятно, что оригинал выглядит как "в то время как х переходит на 0".

171
ответ дан 22 November 2019 в 19:37
поделиться

- - оператор декремента , а > - оператор больше, чем .

Два оператора применяются как один, например -> .

134
ответ дан 22 November 2019 в 19:37
поделиться

В одной книге, которую я читал (не помню точно, в какой), говорилось: Компиляторы пытаются разобрать выражения до самого большого токена, используя правило "слева направо".

В данном случае выражение:

x-->0

разбирается до наибольшей лексемы:

token 1: x
token 2: --
token 3: >
token 4: 0
conclude: x-- > 0

То же правило применяется к этому выражению:

a-----b

После разбора:

token 1: a
token 2: --
token 3: --
token 4: -
token 5: b
conclude: (a--)-- - b

Надеюсь, это поможет понять сложное выражение ^^

309
ответ дан 22 November 2019 в 19:37
поделиться

Совершенно чудаковатый, но я буду использовать это:

#define as ;while

int main(int argc, char* argv[])
{
    int n = atoi(argv[1]);
    do printf("n is %d\n", n) as ( n --> 0);
    return 0;
}
347
ответ дан 22 November 2019 в 19:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: