Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| Path | csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail |
|---|---|
| NNTP-Posting-Date | Mon, 20 Feb 2012 21:53:12 -0600 |
| Message-ID | <4F431529.1491@mindspring.com> (permalink) |
| Date | Mon, 20 Feb 2012 22:53:13 -0500 |
| From | pete <pfiland@mindspring.com> |
| Reply-To | pfiland@mindspring.com |
| Organization | PF |
| X-Mailer | Mozilla 3.04Gold (WinNT; I) |
| MIME-Version | 1.0 |
| Newsgroups | comp.lang.c |
| Subject | Re: Arrays Vs Pointers |
| References | <jgs51h$hhm$1@speranza.aioe.org> <slrnjk1qug.1m5e.willem@toad.stack.nl> <lnfwe6efr8.fsf@nuthaus.mib.org> <4F42C9FB.2597@mindspring.com> <lnbootcctn.fsf@nuthaus.mib.org> <ln7gzhc9aq.fsf@nuthaus.mib.org> |
| Content-Type | text/plain; charset=us-ascii |
| Content-Transfer-Encoding | 7bit |
| Lines | 72 |
| X-Usenet-Provider | http://www.giganews.com |
| NNTP-Posting-Host | 4.154.221.31 |
| X-Trace | sv3-KpkF888JgvwL1ZkGkyjNUPtQw4Dpvcuxu5RQOivjbcsjT6iSOUoEes8WwBpBtubcHs9I0jiZfJhNv/U!8qMnBw0EwnISzwSRjLK35WCoxDQmO71EDkx49fekYQd+GmcNMbWW865aQEpSJzUAKUctDazwxsVX!520wgrX1mQ== |
| X-Abuse-and-DMCA-Info | Please be sure to forward a copy of ALL headers |
| X-Abuse-and-DMCA-Info | Otherwise we will be unable to process your complaint properly |
| X-Postfilter | 1.3.40 |
| X-Original-Bytes | 3729 |
| Xref | x330-a1.tempe.blueboxinc.net comp.lang.c:17725 |
Show key headers only | View raw
Keith Thompson wrote:
>
> Keith Thompson <kst-u@mib.org> writes:
> > pete <pfiland@mindspring.com> writes:
> >> Keith Thompson wrote:
> >>> Willem <willem@toad.stack.nl> writes:
> >>> > peter wrote:
> >>> > ) I am currently exploring the world of pointers and have encounter some
> >>> > ) inconsistent information regarding the best way to reference an
> >>> > ) array: array[1] OR *(array +1).
> >>> > )
> >>> > ) One book says that you should not use the syntax array[1] because
> >>> > ) of performance reason.
> >>> >
> >>> > That book is completely and utterly wrong.
> >>> > In C, "array[index]" is *exactly the same* as "*(array + index)"
> >>> > I would go so far as to call it syntactic sugar.
> >>> > Hell, it's even commutative. "array[index]" means the same as "index[array]" !
> >>> [...]
> >>>
> >>> Yes, but I doubt that that's what the book actually said.
> >>
> >> Teach Yourself C,
> >> by Herbert Schildt, copyright 1990,
> >> Chapter 6.3, Use Pointers With Arrays,
> >> page 197:
> >>
> >> For somewhat complex reasons,
> >> a C compiler will generally create faster executable code
> >> for an expression such as
> >>
> >> *(p+3)
> >>
> >> than it will for the comparable array index
> >>
> >> p[3]
> >
> > Had I known it was one of Schildt's books, I wouldn't have assumed
> > that it said something sensible. (Do we know that that's the book to
> > which peter was referring?)
I don't know,
but for some reason I remembered reading it a long time ago.
> > Willem is right: the book is completely and utterly wrong.
> > There's probably a valid point somewhere in the vicinity of what
> > Schildt wrote (as I discussed upthread), but Schildt missed it.
>
> Let me amend that slightly. It's possible that some compilers might
> generate faster code for *(p+3) than for p[3]. There's no good reason
> for that, since the two expressions are equivalent by definition, but
> it's possible. It's also possible Schildt encountered such a compiler
> and reached an overly general conclusion.
I recall a thread about a year or so ago,
where the controling expression in a loop
was shown to have been rendered
with a register, when {!= 0} was omitted.
That is to say that there was a compiler for which
while (x)
was faster than
while ((x) != 0)
I think it was a gcc compiler
and I remember being disappointed
that the compiler had translated
two semantically equal expressions differently.
--
pete
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Arrays Vs Pointers peter <pc722@nospam.mail.com.br> - 2012-02-07 21:28 +0000
Re: Arrays Vs Pointers William Ahern <william@wilbur.25thandClement.com> - 2012-02-07 13:50 -0800
Re: Arrays Vs Pointers James Kuyper <jameskuyper@verizon.net> - 2012-02-07 17:13 -0500
Re: Arrays Vs Pointers Stephen Sprunk <stephen@sprunk.org> - 2012-02-07 16:38 -0600
Re: Arrays Vs Pointers Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-02-07 23:09 +0000
Re: Arrays Vs Pointers Keith Thompson <kst-u@mib.org> - 2012-02-07 14:41 -0800
Re: Arrays Vs Pointers Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-02-07 23:07 +0000
Re: Arrays Vs Pointers James Kuyper <jameskuyper@verizon.net> - 2012-02-07 19:14 -0500
Re: Arrays Vs Pointers Shao Miller <sha0.miller@gmail.com> - 2012-02-07 18:21 -0500
Re: Arrays Vs Pointers Keith Thompson <kst-u@mib.org> - 2012-02-07 16:25 -0800
Re: Arrays Vs Pointers Shao Miller <sha0.miller@gmail.com> - 2012-02-07 20:31 -0500
Re: Arrays Vs Pointers Ike Naar <ike@sverige.freeshell.org> - 2012-02-07 23:36 +0000
Re: Arrays Vs Pointers Keith Thompson <kst-u@mib.org> - 2012-02-07 16:26 -0800
Re: Arrays Vs Pointers Keith Thompson <kst-u@mib.org> - 2012-02-07 16:24 -0800
Re: Arrays Vs Pointers Paul N <gw7rib@aol.com> - 2012-02-07 14:55 -0800
Re: Arrays Vs Pointers Shao Miller <sha0.miller@gmail.com> - 2012-02-07 18:11 -0500
Re: Arrays Vs Pointers John Bode <jfbode1029@gmail.com> - 2012-02-08 16:06 -0800
Re: Arrays Vs Pointers Philip Lantz <prl@canterey.us> - 2012-02-08 23:25 -0800
Re: Arrays Vs Pointers John Bode <jfbode1029@gmail.com> - 2012-02-09 05:34 -0800
Re: Arrays Vs Pointers Philip Lantz <prl@canterey.us> - 2012-02-10 01:04 -0800
Re: Arrays Vs Pointers Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-02-09 00:20 -0800
Re: Arrays Vs Pointers 88888 Dihedral <dihedral88888@googlemail.com> - 2012-02-09 23:42 -0800
Re: Arrays Vs Pointers gwowen <gwowen@gmail.com> - 2012-02-10 01:20 -0800
Re: Arrays Vs Pointers David Thompson <dave.thompson2@verizon.net> - 2012-02-18 23:12 -0500
Re: Arrays Vs Pointers Kaz Kylheku <kaz@kylheku.com> - 2012-02-19 05:53 +0000
Re: Arrays Vs Pointers Markus Wichmann <nullplan@gmx.net> - 2012-02-19 18:54 +0100
Re: Arrays Vs Pointers Willem <willem@toad.stack.nl> - 2012-02-19 18:51 +0000
Re: Arrays Vs Pointers "io_x" <a@b.c.invalid> - 2012-02-19 21:29 +0100
Re: Arrays Vs Pointers Markus Wichmann <nullplan@gmx.net> - 2012-02-20 11:24 +0100
Re: Arrays Vs Pointers gwowen <gwowen@gmail.com> - 2012-02-21 01:51 -0800
Re: Arrays Vs Pointers Willem <willem@toad.stack.nl> - 2012-02-19 12:32 +0000
Re: Arrays Vs Pointers Keith Thompson <kst-u@mib.org> - 2012-02-19 12:21 -0800
Re: Arrays Vs Pointers Willem <willem@toad.stack.nl> - 2012-02-19 21:00 +0000
Re: Arrays Vs Pointers Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-02-19 21:42 +0000
Re: Arrays Vs Pointers pete <pfiland@mindspring.com> - 2012-02-20 17:32 -0500
Re: Arrays Vs Pointers James Kuyper <jameskuyper@verizon.net> - 2012-02-20 17:56 -0500
Re: Arrays Vs Pointers Keith Thompson <kst-u@mib.org> - 2012-02-20 15:19 -0800
Re: Arrays Vs Pointers Keith Thompson <kst-u@mib.org> - 2012-02-20 16:35 -0800
Re: Arrays Vs Pointers pete <pfiland@mindspring.com> - 2012-02-20 22:53 -0500
Re: Arrays Vs Pointers Keith Thompson <kst-u@mib.org> - 2012-02-20 21:16 -0800
Re: Arrays Vs Pointers Richard Sanders <lnr729@gmail.com> - 2012-02-21 00:26 -0800
Re: Arrays Vs Pointers pete <pfiland@mindspring.com> - 2012-02-21 11:46 -0500
csiph-web