I was confused about the VBO,
glGenBuffers(1, &positionBufferObject);
glBindBuffer(GL_ARRAY_BUFFER, positionBufferObject);
Besides GL_ARRAY_BUFFER, there are other target types: GL_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER...
However, the Opengl manual doesn't mention what these targets mean. I checked the glew.h:
#define GL_ARRAY_BUFFER 0x8892
Does this mean the targets (like GL_ARRAY_BUFFER) are addresses?
What does the target--GL_ARRAY_BUFFER mean in glBindBuffer?