Вопрос:

Я не знаю, как работает таблица [+1]?

c++

61 просмотра

3 ответа

0 Репутация автора

Мой друг новичок делает этот код, и я не знаю, как он может работать, например, эта таблица [+1]

#include <iostream>

using namespace std;

int main()
{
    int a=0;
    int tablica[100];
    for (tablica[0]=1;tablica[a]<=100;tablica[+1]){
        cout << tablica[a] << endl;
        tablica[a]+=1;
    }

}
Автор: user8910017 Источник Размещён: 08.11.2017 10:45

Ответы (3)


-2 плюса

39 Репутация автора

Это просто cout, tablica[0]но 100 раз (начиная с 1 2 3 .. 100), каждый раз увеличиваясь tablica[0]. Переменная aникогда не изменяется. В forкотором значение tablica[+1]равно tablica[1], но оно просто получает значение и ничего с этим не делает.

Автор: armo Размещён: 08.11.2017 10:56

0 плюса

551 Репутация автора

aвсегда 0, значит tablica[0]и tablica[a]всегда одно и то же.

for (tablica[0]=1;Теперь мы инициализированы tablica[0]до 1.

tablica[a]<=100;, это сломается, когда tablica[0]больше 100.

tablica[a]+=1;, это на самом деле увеличивается в цикле.

Автор: Jay Размещён: 08.11.2017 10:57

1 плюс

472214 Репутация автора

forЦикл , как:

for (init; test; repeat) {
    body;
}

в основном эквивалентно:

init;
while (test) {
    body;
    repeat;
}

Итак, цикл, который вы дали, выглядит так:

tablica[0]=1;
while (tablica[a] <= 100) {
    cout << tablica[a] << endl;
    tablica[a] += 1;
    tablica[+1];
}

Так как aбыл инициализирован 0, и никогда не изменяется, так tablica[a]же, как tablica[0].

tablica[+1]выполняется, но никогда не использует значение этого элемента массива. Элемент массива не инициализирован, поэтому его значение не определено, но, поскольку значение ни для чего не используется, это не проблема. Вы можете просто проигнорировать эту часть (и компилятор, скорее всего, ее оптимизирует).

Так что это не сильно отличается от типичного цикла вроде:

for (i = 1; i <= 100; i++) {
    cout << i << endl;
}

Ваш друг просто пытался запутать вас (и преуспел), используя элемент массива вместо простой переменной для итерации и добавляя постороннее выражение, tablica[+1]которое выглядит как итерация, но на самом деле ничего не делает.

Автор: Barmar Размещён: 08.11.2017 11:04
Вопросы из категории :
32x32