#include #include int main(int argc, char **argv) { int data[6] = {0, 0, 0, 0, 0, 0}; int *p = data; /* cpp = 99 112 112 10 99 = 7 * 2 * 7+1 112 = 7 * 2 * 8 */ *p += 7; /* BF:+++++++ */ while( *p ) /* BF:[ */ { --*p; /* BF:- */ p++; /* BF:> */ *p += 1; /* BF:+ */ p++; /* BF:> */ *p += 2; /* BF:++ */ while( *p ) /* BF:[ */ { --*p; /* BF:- */ p++; /* BF:> */ *p += 7; /* BF:+++++++ */ while( *p ) /* BF:[ */ { --*p; /* BF:- */ p++; /* BF:> */ *p += 1; /* BF:+ */ p++; /* BF:> */ *p += 1; /* BF:+ */ p -= 2; /* BF:<< */ assert(p == &data[3]); } /* BF:] */ p++; /* BF:> */ *p += 1; /* BF:+ */ p -= 2; /* BF:<< */ assert(p == &data[2]); } /* BF:] */ p -= 2; /* BF:<< */ assert(p == &data[0]); } /* BF:] */ assert(p == &data[0]); assert(data[0] == 0); assert(data[1] == 7); assert(data[2] == 0); assert(data[3] == 0); assert(data[4] == 112); assert(data[5] == 98); p += 5; /* BF:>>>>> */ *p += 1; /* BF:+ */ assert(*p == 'c'); putchar(*p); /* BF:. */ p--; /* BF:< */ assert(*p == 'p'); putchar(*p); /* BF:. */ putchar(*p); /* BF:. */ p -= 3; /* BF:<<< */ *p += 3; /* BF:+++ */ assert(*p == '\n'); putchar(*p); /* BF:. */ return 0; }