Re: gcc not compiling

From: Matthew Saltzman (mjs_at_ces.clemson.edu)
Date: 10/31/05

  • Next message: mskinnym_at_aim.com: "(no subject)"
    Date: Mon, 31 Oct 2005 17:36:35 -0500 (EST)
    To: For users of Fedora Core releases <fedora-list@redhat.com>
    
    

    On Mon, 31 Oct 2005, Derek Martin wrote:

    > On Mon, Oct 31, 2005 at 01:30:44PM -0600, STYMA, ROBERT E (ROBERT) wrote:
    >> The syntax:
    >> int main(int argc, char **argv)
    >> works, but most of the C books I have seen recommend
    >> the *argv[] version.
    >
    > I meant to comment that these two different notations are functionally
    > identical; an array name is nothing more than a pointer. For example,
    > if we have the following code:
    >
    >
    > #include <stdio.h>
    > void main (void){
    >
    > char foo[] = "This is a string\n";
    > char *bar = foo;
    >
    > /* these expressions all print "T\n" */
    > printf("%c\n", foo[0]);
    > printf("%c\n", *bar);
    > printf("%c\n", bar[0]);
    > printf("%c\n", *foo);

    /* ...and my favorite... */

                     printf("%c\n", 0[foo]);
    >
    > /* these expressions all print "i\n" */
    > printf("%c\n", foo[2]);
    > printf("%c\n", *(bar + 2));
    > printf("%c\n", bar[2]);
    > printf("%c\n", *(foo + 2));

                     printf("%c\n", 2[foo]);

    /* That's right, folks, [] is commutative! */

    > }
    >
    > The results may surprise programming students:
    >
    > $ gcc -o ptr ptr.c
    > ptr.c: In function `main':
    > ptr.c:2: warning: return type of 'main' is not `int'
    > [ddm@archonis ~]
    > $ ./ptr
    > T
    > T
    > T
    > T
    > i
    > i
    > i
    > i
    >
    >
    > In reality, foo[x] is just "syntactic sugar" for *(foo + x). This
    > is called pointer math, and works properly regardless of the size and
    > type of foo, so long as it was declared properly before being used.
    >
    > [I'm very bored today...]
    >
    >

    -- 
     		Matthew Saltzman
    Clemson University Math Sciences
    mjs AT clemson DOT edu
    http://www.math.clemson.edu/~mjs
    -- 
    fedora-list mailing list
    fedora-list@redhat.com
    To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
    

  • Next message: mskinnym_at_aim.com: "(no subject)"