#include #include int main(int argc, char **argv) { int data[5] = {0, 0, 0, 0, 0}; int *p = data; /* CPP = 67 80 80 10 67 = 4 * 4 * 4 + 3 80 = 4 * 4 * 5 */ *p += 4; /* BF:++++ */ while( *p ) /* BF:[ */ { --*p; /* BF:- */ p++; /* BF:> */ *p += 2; /* BF:++ */ p++; /* BF:> */ *p += 4; /* BF:++++ */ while( *p ) /* BF:[ */ { --*p; /* BF:- */ p++; /* BF:> */ *p += 4; /* BF:++++ */ p++; /* BF:> */ *p += 5; /* 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] == 8); assert(data[2] == 0); assert(data[3] == 64); assert(data[4] == 80); p += 3; /* BF:>>> */ *p += 3; /* BF:+++ */ assert(*p == 'C'); putchar(*p); /* BF:. */ p++; /* BF:> */ assert(*p == 'P'); putchar(*p); /* BF:. */ putchar(*p); /* BF:. */ p -= 3; /* BF:<<< */ *p += 2; /* BF:++ */ assert(*p == '\n'); putchar(*p); /* BF:. */ return 0; }