[Book Review] Understanding and Using C Pointers

@book{reese,
    author    = "Richard Reese",
    title     = "Understanding and Using C Pointers",
    edition   = "First",
    year      = "2013",
    publisher = "O'Reilly",
}

Thanks to the Mauritius Software Craftmanship Community (MSCC), i got access to the book “Understanding and Using C Pointers” by Richard Reese. I read only the first 3 chapters till now. It’s like really lots to disgest.

cpointers

I got interested in the book because i am doing my BSc final year project using C++. C/C++ programmers usually use pointers a lot. Reese says

“a solid understanding of pointers and the ability to effectively use them separates a novice C programmer from a more experienced one.”

Unfortunately the book doesn’t illustrate the difference between a pointer and a “normal” variable. Having read the first 3 chapters still makes me wondering when should i use pointers and even is it really worth it?

In the first year at university in python class, my lecturer mentioned that arrays are passed by reference to functions in almost all programming language.

void change(int array[], int pos,int newval){
    array[pos] = newval;
}

int main()
{
    int x[] = {1,2,3};
    change(x,2,5);
    std::cout << x[2] << endl;
    return 0;
}


5 will be outputed on the screen i.e. x was passed by reference. What advantage would i get for using pointer notation instead?

I find the book too hard containing too much information for beginners. I'd recommend the book to people who already have a basic knowledge of pointers. The book will improve your pointer skills with "best practices" so that you become really proficient in pointers. 🙂

The book doesn't illustration in Object Oriented Programming. I guess that is because C doesn't support OOP.

Conclusion

- Cannot be used as "introduction" to pointers to newbies
- If you're already using pointers, do read the book. It'll make you become a pointer guru for sure!

Leave a Reply

Your email address will not be published. Required fields are marked *