c – Difference between MOV and MOV ptr

Maybe this is not the place to ask this question, but I will have a test and I do not understand the difference between MOV and MOV ptr.
for example, if we have in language c "unsigned char x, y", in assembler if we want "X = 2" we use
MOV x, 2

but if we have "unsigned tabbyt char[4]"and we want" tabby[0]= 15 "is already used
MOV octet ptr tabby [0], 15.

Can any one explain me the difference, and when should we use MOV and when should we use MOV ptr?
thank you so much