Следующий фрагмент кода взят из Википедии и является преамбулой того, что кажется стандартным Hello World! программа в 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]
волшебным образом увеличиваются в десять раз, и я не понимаю почему.