Indirect Address
The address N10:12 is a reference to the 12th word (well, 13th, counting from zero) in file 10, which has been configured to be an integer file. When the PLC encounters it in an instruction, it goes to the data table, gets the value that's stored there, and does with it whatever the instruction requires.
An example of an indirect address is N10:[N7:0]. When the PLC encounters it in an instruction, it goes to the data table, gets the value that's stored in N7:0 (let's say N7:0 = 12). Then the PLC is able to interpret N10:[N7:0] to really be referencing N10:[12]. The PLC will then go to the data table, get the value of N10:12, and does with it whatever the instruction requires.
If you change the value of N7:0, you are now pointing to a different register in the N10: data file. Since you are no longer pointing to N10:12 (since N7:0 is no longer 12), the value in that register won't be changed.
Simple enough.
Some caveats.
1) If N7:0 = 200, and there is no N10:200, the PLC will fault.
2) If your indirect address is a coil (say, OTE B20/[N7:5]), if the value of the pointer changes, the coil will no longer be controlling the original register, but a different one. The usual warning "Caution: Outputs will remain in their last state".
There's also something called Indexed Addressing. That's where you put a '#' symbol in front of an integer address and manipulate the value in S:24. A 12 in S:24 makes the address #N10:0 cause the PLC to read register N10:12 when evaluting an instruction. Be careful, some instructions, such as COP, FAL manipulate S:24 as part of the internal bookkeeping, and so wipe out the number that you poked into it. (That's why you usually use a '#' sign with those instructions). Just be sure you know what you're pointing at.