Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #4299
| From | Ian Collins <ian-news@hotmail.com> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: Problem with array objects |
| Date | 2011-04-24 14:10 +1200 |
| Message-ID | <91hf57F6cmU6@mid.individual.net> (permalink) |
| References | (6 earlier) <%OFsp.42022$bT6.13973@newsfe05.ams2> <91guh2F6cmU1@mid.individual.net> <7WIsp.37183$2W5.2255@newsfe16.ams2> <91h5dpF6cmU3@mid.individual.net> <%RKsp.40408$5t2.24872@newsfe06.ams2> |
On 04/24/11 01:16 PM, Paul wrote:
>
> "Ian Collins"<ian-news@hotmail.com> wrote in message
> news:91h5dpF6cmU3@mid.individual.net...
>> On 04/24/11 11:04 AM, Paul wrote:
>>>>>>>> A pointer to an array of 4 ints, when dereferenced, returns an array
>>>>>>>> of 4 ints. Look at the output of running the following program.
>>>>>>>>
>>>>>>>> #include<iostream>
>>>>>>>> #include<typeinfo>
>>>>>>>>
>>>>>>>> int main() {
>>>>>>>> int a1i[4], (*pa1i)[4] =&a1i;
>>>>>>>>
>>>>>>>> std::cout<<"typeid( a1i)="<<typeid(a1i).name()<<std::endl;
>>>>>>>> std::cout<<"typeid(*pa1i)="<<typeid(*pa1i).name()<<std::endl;
>>>>>>>> }
>>>>>>>>
>>>>>>> You are dereferencing an array-type , not an array.
>>>>>>> For example:
>>>>>>>
>>>>>>> int arr[40] ={0};
>>>>>>> int* parr = arr;
>>>>>>> int (*pparr)[40] =&arr;
>>>>>>>
>>>>>>> std::cout<< "address of arr[0]:\t"<< &arr[0]<<std::endl;
>>>>>>> std::cout<< "value of *parr:\t\t"<< *parr<<std::endl;
>>>>>>> std::cout<< "value of *pparr\t\t"<< *pparr<<std::endl;
>>>>>>>
>>>>>>> Dereferencing pparr does not access the array it accesses a temporary
>>>>>>> pointer.
>>>>>>> The pointer pparr does not reference the array, it references an
>>>>>>> array-type
>>>>>>> object.
>>>>>>
>>>>>> Dereferencing pparr accesses an array in the same sense that using
>>>>>> the name arr accesses an array.
>>>>
>>>>> No it doesn't
>>>>
>>> What I wrote was:
>>> No it doesn't
>>> *arr =1; /*Accesses the array*/
>>> *pparr=1; /*Cannot do this*/
>>>
>>> There is no need to snip something so short. Obviously you are attempting
>>> to
>>> change the context of my post from that of a reasonable debate into a
>>> blunt
>>> non explanatory argument.
>>
>> I was replying to text above, not the example, which had no relevance to
>> the text.
>>
>> Saying "*pparr=1; /*Cannot do this*/" is no different form writing
>>
>> struct X { int n; };
>>
>> X x;
>> X* px =&x;
>> *px = 1;
>>
> Saying "*pparr=1; /*Cannot do this*/". is completely different from writing
> the above code.
> pparr's type is not a pointer to an X. It's type is pointer to array of
> ints.
Exactly.
>>>>
>>>> try adding
>>>>
>>>> (*pparr)[0] = 42;
>>>> std::cout<< "value of arr[0]\t\t"<< arr[0]<<std::endl;
>>>> arr[10] = 1234;
>>>> std::cout<< "value of (*pparr)[0]\t\t"<< (*pparr)[10]<<std::endl;
>>>>
>>> This code only confirms that *arr, is not the same as *pparr, in any
>>> sense.
>>> Which is exactly what I said.
>>
>> Did anyone dispute that? Remember you disputed "Dereferencing pparr
>> accesses an array in the same sense that using the name arr accesses an
>> array".
> dereferencing pparr does not access the array , it..*drumroll* dereferences
> pparr.
Neither does arr. Remember the origin claim you disputed?
"Dereferencing pparr accesses an array in the same sense that using the
name arr accesses an array".
>> So how does "(*pparr)[0] = 42;" differ from "arr[0] = 42;"?
>>
> If you can't see that they differ in levels of indirection, then you do not
> understand the code.
Quite. Remember the words "Dereferencing pparr'?
>> Does (*pparr) not dereference pparr?
>>
>>> As I said dereferencing pparr doesn't access the arrray it accesses an
>>> array-type object.
>>> As can be shown:
>>> std::cout<< *p;
>>> std::cout<< typeid(*p).name();
>>
>> Try adding
>>
>> std::cout<< (typeid(arr) == typeid(*pparr))<< std::endl;
>
> This is just a pointless comment that in no way suggests the *pparr access
> the array.
> This simply shows that *pparr has the same type as arr. I have already
> stated that *pparr yields an array-type object.
So dereferencing pparr allows you to access the array in the same manner
as arr. You have just disproved your own claim.
Well done.
--
Ian Collins
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar
Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-18 12:44 -0500
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-18 21:35 +0100
Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-19 13:46 -0500
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-20 17:29 +0100
Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-23 12:59 -0500
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-23 20:31 +0100
Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-24 09:26 +1200
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 00:04 +0100
Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-24 11:24 +1200
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 02:16 +0100
Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-24 14:10 +1200
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 04:37 +0100
Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-24 16:11 +1200
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 13:31 +0100
Re: Problem with array objects Peter Remmers <p.remmers@expires-2011-04-30.arcornews.de> - 2011-04-24 17:57 +0200
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 17:39 +0100
Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-25 10:19 +1200
Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-25 10:12 +1200
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-25 00:46 +0100
Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-25 11:59 +1200
Re: Problem with array objects "Alf P. Steinbach /Usenet" <alf.p.steinbach+usenet@gmail.com> - 2011-04-25 05:01 +0200
Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-25 14:56 +1200
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-25 10:57 +0100
Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-26 12:36 -0500
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-26 22:42 +0100
Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-27 12:53 -0500
Re: Problem with array objects Leigh Johnston <leigh@i42.co.uk> - 2011-04-27 19:06 +0100
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-27 20:09 +0100
Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-29 12:57 -0500
Re: Problem with array objects Leigh Johnston <leigh@i42.co.uk> - 2011-04-29 19:10 +0100
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-29 19:56 +0100
Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-02 13:20 -0500
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-05-02 22:43 +0100
Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-05 14:13 -0500
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-05-05 22:21 +0100
Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-05-06 10:49 +1200
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-05-06 12:29 +0100
Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-07 11:34 -0500
Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-05-08 04:05 +0100
csiph-web