myarray = "abc";
... - это присвоение указателя на «abc» указателю myarray.
Это НЕ заполняет буфер myarray «abc».
Если выЕсли вы хотите заполнить буфер myarray вручную, без использования strcpy () вы можете использовать:
myarray[0] = 'a', myarray[1] = 'b', myarray[2] = 'c', myarray[3] = 0;
или
char *ptr = myarray;
*ptr++ = 'a', *ptr++ = 'b', *ptr++ = 'c', *ptr = 0;
Ваш вопрос о разнице между указателем и буфером (массив).Я надеюсь, что теперь вы понимаете, как С обращается к каждому виду.