home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / lang / c / 12985 < prev    next >
Encoding:
Text File  |  1992-08-30  |  1.4 KB  |  42 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!att!linac!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!moe.ksu.ksu.edu!usenet-feed.cc.umr.edu!mcs213c.cs.umr.edu!ckincy
  3. From: ckincy@mcs213c.cs.umr.edu (Charles Kincy)
  4. Subject: Re: Novice Questions
  5. References: <1992Aug30.004740.8973@eskimo.celestial.com> <1992Aug30.101121.4479@klaava.Helsinki.FI>
  6. Date: Sun, 30 Aug 1992 22:14:26 GMT
  7. Nntp-Posting-Host: mcs213c.cs.umr.edu
  8. Organization: University of Missouri - Rolla
  9. Sender: cnews@umr.edu (UMR Usenet News Post)
  10. Message-ID: <1992Aug30.221426.9849@umr.edu>
  11. Lines: 29
  12.  
  13. In article <1992Aug30.101121.4479@klaava.Helsinki.FI> wirzeniu@klaava.Helsinki.FI (Lars Wirzenius) writes:
  14. >maven@eskimo.celestial.com (Norman Hamer) writes:
  15. >> 1. Given a char array, say char foo[256];, is *foo the same as foo[0]
  16. >>and is foo+x the same as foo[x] in all implementations?
  17. >
  18. >*foo and foo[0] are identical, and *(foo+x) and foo[x] are identical. 
  19. >The latter is by definition: the language is defined that way.  The
  20. >former follows directly from the latter: foo[0] <=> *(foo+0) <=> *(foo)
  21. ><=> *foo.
  22.  
  23. Beware!  If you define foo as a char[], you may not reassign foo in
  24. any way or you will be punished by a wet noodle. =)
  25.  
  26. Example:
  27. char foo[256];
  28. char *roo = "Argh!";
  29. [...]
  30. foo = roo;
  31.  
  32. Don't do this!!!
  33.  
  34. Do this:
  35.  
  36. strcpy(foo, roo);
  37.  
  38. Many novices fall into this trap.  Arrays and pointers are *nearly*
  39. equivalent, but not quite.
  40.  
  41. cpk
  42.