Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> The only caveat here is that most of the examples are written in C, which can be troublesome if you don’t know or have forgotten about pointers.

It is hard for me to take advice seriously from someone who says this.



I bought this book on Yegge's recommendation as well, and this actually was a stumbling block for me at first.

"Whyyy is this variable, ★★p a pointer to a pointer?! p is never referenced in the function, so why are we two levels of indirection down?!" I didn't realize at the time that pointers are copied by value in C, so in order to modify the pointer you need to give the function a pointer to it.

I guess it was worthwhile, though, because it encouraged me to play around with C[1] a bit in order to grok it.

P.S. Sorry for those stupid stars, HN kept eating my highlights. Any way to avoid that?

[1]https://gist.github.com/661564


Indent your "code" with a few spaces.

    int **p; /* I used 4 spaces in front of "int" */


Ah, thanks. I was hoping there was an inline way, but I guess this will have to do.


um, why? It seems perfectly reasonable to me that examples written in C could be troublesome to someone who doesn't know C.


I don't think anyone can forget pointers though, except in Winnie the Pooh way.

Also, anyone learning data structures should know pointers or at least references as a prerequisite. You can't reason about efficiency in data structures knowing only the high level comfort of Python.


I think it's a reasonable caveat and don't find its inclusion undermining the OPs main thrust.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: