cout << &bufferLoc << endl;
печатает адрес bufferLoc. Этот адрес всегда один и тот же. Вы можете напечатать значение, хранящееся в bufferLoc:
cout << bufferLoc << endl;
изначально это значение является адресом dataBuffer, при увеличении его значение во втором операторе печати будет на 4 байта больше.
dataBuffer
сам хранит указатель на массив char
размером 8192 байта. Что вы хотите сделать, это получить это значение:
char *bufferLoc = dataBuffer;
и увеличьте это значение. Обратите внимание, что тип bufferLoc является указателем на массив символов (так же, как dataBuffer). После назначения адреса, сохраненного в dataBuffer, на bufferLoc, вы можете напечатать первый элемент: например: cout << bufferLoc[0] << end
.