Следующий фрагмент кода из Википедии, и является преамбулой к тому, что кажется стандартным Hello World! Программа в Brainfuck ...Привет, мир! в Brainfuck
1. +++++ +++++ initialize counter (cell #0) to 10
2. [ use loop to set the next four cells to 70/100/30/10
3. > +++++ ++ add 7 to cell #1
4. > +++++ +++++ add 10 to cell #2
5. > +++ add 3 to cell #3
6. > + add 1 to cell #4
7. <<<< - decrement counter (cell #0)
8. ]
Я понимаю суть того, что происходит здесь, но я не понимаю, механики, что происходит на линиях с 3 по 6. Если +++++ +++++
добавляет 10 к значению a[0]
, почему приращение указателя на один и выполнение ++*ptr
семь раз приводит к a[1]
, равному 70? Не должно a[1] = 7
? Кажется, что a[1]
до a[4]
магически увеличиваются в десять раз, и я не понимаю, почему.
Цикл работает десять раз. –
Большое спасибо! Я знал, что мне что-то не хватает ... –
Да, ты прав. Кажется, я пропустил/снял вторую часть первого абзаца, описывающего программу. Моя вина. –