If you understand the basics of C or C++, then you can start learning openGL. In my opinion, the best site to learn is NeHe's.
Pointers are fairly simple to understand once you realize what they are actually doing. Take a look at the following example:
Code:
int x; // A variable named 'x' which holds an integer value
int *px; // A pointer named 'px' which holds the location
// of an integer variable.
x = 10; // assign x the value of 10
px = &x; // assign px the address of the variable 'x'.
// px is now pointing to the variable x.
printf("The value of x is %d\n",x);
printf("The value px points to is %d\n",*px);
// The * before 'px' on the above line is needed to indicate we want
// the value pointed to by px, not the value stored in px. The value
// stored in px is an address, but we want the value which the address
// points to. This is called dereferencing the pointer.
x = 5; // change the value of x to 5.
printf("The value px points to is %d\n",*px);
// Notice now how the value that px points to is now 5 instead of
// 10. This is because the variable that it was pointing to was
// changed.