From: Andrew R. <and...@us...> - 2005-03-10 22:43:52
|
On Thu, Mar 10, 2005 at 02:21:56PM -0800, Alan Irwin wrote: > >Now you would ask me: "Nice, buddy, but why it works when I remove the > >ampersand?" Here is the answer: when the compiler sees clipx alone (i.e. > >without the subsequent brackets), it understands that you want the > >address of the variable and automatically casts it with to the type > >PLINT*. Notice that all unidimensional arrays of PLINT when referenced > >by their name (without the brackets) have the same type: PLINT*. > > Actually, I did notice that. In fact, I thought that was the standard way > to pass arrays since I learned all my C coding skills while working on > PLplot. Therefore, my question was the reverse; why does it work with > ampersand? I originally thought the ampersand would give a pointer to a > pointer, but if I understood your explanation properly it gives a pointer to > an array of PLINTs which is then changed (with warning) to pointer to PLINT > which of course works. > > That reminds me very much of fortran. I say that in the positive sense; an > extremely convenient language to use "when you know how". > > > > >Hope this helps. > > Yes it did, and thanks. I will go kill the warnings now unless cvs update > tells me someone else beat me to it. Alan, your understanding was correct and this was a mistake (I presume) on my part. I haven't yet checked the consequences of the mistake. Andrew |