Re: learning dragonfly or C...

看板DFBSD_kernel作者時間21年前 (2004/11/11 17:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/23 (看更多)
Magnus Eriksson wrote: > On Thu, 11 Nov 2004, Devon H. O'Dell wrote: > > >>The statement: >> >> vpp = &vp >> >>is ``dereferencing'' vp. Dereferencing effectively provides the address >>in memory of a variable. > > > >>modfunction(int *bar) >>{ >> >> *bar = 3; /* Change bar to 3 */ >> printf("%d\n", *bar); >> return; >>} > > >> modfunction(&foo); > > > >>This time, we ``dereferenced'' our variable foo (and, on a sidenote, I >>don't know why it's called dereferencing, I think it's a horrible name >>and substitute it mentally with ``grab the address of'' whenever I see > > > > It's called dereferencing because a pointer is a reference to something, > and dereferencing is the act of doing away with the reference > (de-referencing) and handling what is actually pointed to instead. So the > opposite of what you said really. Did you get enough sleep tonight? :-) Oh, right. I did get enough sleep tonight, but I haven't had my cup of coffee yet, so that must be it ;). > (but *bar = 3 in modfunction() is dereferencing bar though, if that's > what you meant.) Nope, I really just missed the coffee :\. > I have no idea what the opposite operation (&) is called. Referencing? > Nah.. > > > Magnus Yeah, prefixing with an & is creating a reference; I suppose that _is_ what that's called. Which is why I (correctly) specified somewhere else that we were passing it by reference. Oh well. The rest of the example is correct. (This is why people get confused with C. Nobody explains pointers right the first time.) --Devon
文章代碼(AID): #11ap6O00 (DFBSD_kernel)
討論串 (同標題文章)
文章代碼(AID): #11ap6O00 (DFBSD_kernel)