For the declaration: int a = 5; int *ptr = &a; what are the values of the following? a. ptr b. *ptr c. ptr == a d. ptr == &a e. &ptr f. *a g. *&a h **&ptr Solution: a. 0xbffff9fc (the address of a, notice that it's a large number, that is, on the call-stack) b. 5 (the value that ptr points to) c. won't compile, since you're trying to compare a ptr and an int, but would be false if it did compile d. 1 (true) e. 0xbffff9f8 (the address of the pointer) f. won't compile, since a is an int and not a pointer, we can't dereference it g. 5 (&a is the address of a and then * dereferences is again, giving us the original value) h. 5 (&ptr is the address of the pointer, * dereferences that to give us the pointer again, and the second * dereference the pointer to give us the value that it points at)