Re: gcc not compiling
From: Derek Martin (code_at_pizzashack.org)
Date: 10/31/05
- Previous message: Rahul Sundaram: "Re: Spurious keyboard repeats with Kernel 1532"
- In reply to: STYMA, ROBERT E (ROBERT): "RE: gcc not compiling"
- Next in thread: Sjoerd Mullender: "Re: gcc not compiling"
- Reply: Sjoerd Mullender: "Re: gcc not compiling"
- Reply: Matthew Saltzman: "Re: gcc not compiling"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Mon, 31 Oct 2005 16:01:03 -0500 To: fedora-list@redhat.com
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);
/* 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));
}
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...]
-- Derek D. Martin http://www.pizzashack.org/ GPG Key ID: 0x81CFE75D
-- fedora-list mailing list fedora-list@redhat.com To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
- application/pgp-signature attachment: stored
- Previous message: Rahul Sundaram: "Re: Spurious keyboard repeats with Kernel 1532"
- In reply to: STYMA, ROBERT E (ROBERT): "RE: gcc not compiling"
- Next in thread: Sjoerd Mullender: "Re: gcc not compiling"
- Reply: Sjoerd Mullender: "Re: gcc not compiling"
- Reply: Matthew Saltzman: "Re: gcc not compiling"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]