// @topic W090120 C array syntax
// @brief Using arrays and pointers to access memory
#include <iostream>
#include <cstdlib>
int table[10] = {0};
int main()
{
int idx = 0;
int x;
// the following three lines do exactly the same thing:
x = table[idx]; // conventional
x = idx[table]; // less conventional
x = 0[table+idx]; // not conventional at all
label:
int* ptr = &table[0];
// the following three lines do exactly the same thing:
x = *ptr; // typical pointer dereference syntax
x = ptr[0]; // using array syntax with pointer
x = 0[ptr]; // really? yes, it's still the same thing
int MEMORY = 0;
x = MEMORY[ptr]; // making it look a bit nicer than 0[ptr]
// inline assebly section that loads label's address into x:
__asm{
push eax
lea eax, label
mov [x], eax
pop eax
}
system("pause");
return 0;
}