5 ms·
Another error: At this point you’ll have to remember that in C, arrays are represented by pointers to their first value. No, they aren't. Arrays can _d
by KaeseEs 15y ago
Another error:
At this point you’ll have to remember that in C, arrays are represented by pointers to their first value.
No, they aren't. Arrays can _decay_ to a pointer when passed as function parameters, but arrays and pointers are different things. Between these two items, I think the author either a) is talking down to his audience more than is warranted or b) fundamentally misunderstands C.
- KaeseEs 15y agoTo whomever downvoted this: if you think I'm wrong, I suggest you look at question 6.3 from the comp.lang.c faq: http://c-faq.com/aryptr/aryptrequiv.html http://c-faq.com/aryptr/aryptrequiv.html If you think I'm being too pedantic, a reply rather than a mere downvote would be appreciated.
- kingatomic 15y agoI didn't downvote, but I do think it's a bit pedantic. From my dogeared, beaten copy of K&R: "By definition, the value of a variable or expression of type array is the address of element zero of the array." I don't think what the author wrote expresses that array === pointer, they simply made a statement about the underlying representation.
- nikic 15y agoThe truth lies somewhere between a) and b). I don't really know C well, as I'm mainly programming in PHP. Sure, I can read and write it, but I definitely don't know the details of the language (and yes, I'd consider that a detail as the only difference I know of is the behavior of sizeof).
- npc 15y agoThere's more to it than just sizeof, for example an array of arrays is structured completely differently than an array of pointers to other arrays, even if you can still access items via a[i][j].