When you're using arrays, when you reference a certain index, you can switch the pointer and the subscript around. I know I'm not explaining that very good, but here's and example:
CODE
int a[] = {1,2,3,4,5,6,7,8,9,10,11};
int b =1;
int c[] = {0,-5,11,0,0,5,0,0,0};
cout << b[a][c]; //Same as c[a[b]];
int b =1;
int c[] = {0,-5,11,0,0,5,0,0,0};
cout << b[a][c]; //Same as c[a[b]];
See? 'b' is actually just an integer, it's not an array, or pointer, or anything. Usually, you would have to put the array first, then an integer.
Like if you have an array of type int, of length 5, you could reference something at index 3 using:
CODE
a[3]
//OR
3[a]
//OR
3[a]
It doesn't really make sense, but I found this on a forum, as someone's signature:
CODE
int main() {
char o[1920]={0};
int _;
double l[]={0,-5,11,0,0,5,0,0,0},_1=0.174533;
for(_=0;_<36;++_)
(((int)(2[l]=((cos(_1)*(4[l]=2[l]))+(sin(_1)*7[l])))+12)*80
+((int)(7[l]=((cos(_1)*7[l])-(sin(_1)*4[l])))+40))[o]=_<27?(((int)(8[l]=((cos(-_1)
*(6[l]=8[l]))+(sin(-_1)*5[l])))+8)*80+((int)(5[l]=((cos(-_1)*5[l])-(sin(-_1)*6[l])))
+40))[o]=(((int)(1[l]=((cos(_1)*(0[l]=1[l]))+(sin(_1)*3[l])))+16)*80+((int)(3[l]=
((cos(_1)*3[l])-(sin(_1)*0[l])))+40))[o]='*':'*';
_=0;
while(_<1920)putchar(_++[o]);
}
//don't forget to include iostream and use namespace std
char o[1920]={0};
int _;
double l[]={0,-5,11,0,0,5,0,0,0},_1=0.174533;
for(_=0;_<36;++_)
(((int)(2[l]=((cos(_1)*(4[l]=2[l]))+(sin(_1)*7[l])))+12)*80
+((int)(7[l]=((cos(_1)*7[l])-(sin(_1)*4[l])))+40))[o]=_<27?(((int)(8[l]=((cos(-_1)
*(6[l]=8[l]))+(sin(-_1)*5[l])))+8)*80+((int)(5[l]=((cos(-_1)*5[l])-(sin(-_1)*6[l])))
+40))[o]=(((int)(1[l]=((cos(_1)*(0[l]=1[l]))+(sin(_1)*3[l])))+16)*80+((int)(3[l]=
((cos(_1)*3[l])-(sin(_1)*0[l])))+40))[o]='*':'*';
_=0;
while(_<1920)putchar(_++[o]);
}
//don't forget to include iostream and use namespace std
That was actually more garbled when it was in their signature, I just indented it, and added new lines where the semicolons were.
What really confused me was that they used and underscore as a variable(hard to see in a signature, I thought it was a space or something), and there were some parts where they switched the pointer and the subscript for an array (like in that last 'while').
All this really does is print out a bunch of asterisks in the shape of an 's' with a circle around it.
I'm pretty sure that the way they coded that isn't good practice, they were just trying to condense it a lot so they could fit it in their signature.
But hey, I guess I learn something new every day.

