Newbie Hello

lrtaylor@micron.com lrtaylor@micron.com
Mon Aug 16 17:14:00 GMT 2004


Larry,

Ishwar, while rude(!), has a good point that you should get a good
beginners book on C or C++ programming.  For C, I might recommend "The C
Programming Language" by Kernighan and Ritchie.  While not a beginners
book, it's a good, concise reference to the language suitable for
experienced developers.  The reason for this recommendation is that C
and C++ handle things like strings much differently than scripting
languages do, and you need to understand how this works in order to be
able to effectively use them.

In this case, what's really happening is that your command line
arguments are being passed into your main function in an array of
strings (C-style strings - that is, character arrays), where each array
element of argv is a pointer that points to the first character of that
null-terminated string.  So, argv[0] points to the first character of
the first argument.  Adding the dereference operator dereferences that
pointer and returns that first character.  To use the whole string, you
would pass the pointer to that string to functions that can manipulate
strings.  For example, if you are expecting a number, you can use the
atoi function (ASCII to integer) like this:

int num = atoi(argv[1]);

Doing something like *argv[1] will return the first character of that
argument.  If the user entered '10', then it would return the ASCII
character for '1', not the value 1.

Hope this helps a bit.

Thanks,
Lyle


-----Original Message-----
From: gcc-help-owner@gcc.gnu.org [mailto:gcc-help-owner@gcc.gnu.org] On
Behalf Of Larry Brown
Sent: Saturday, August 14, 2004 4:30 PM
To: gcc-help@gcc.gnu.org
Subject: Newbie Hello

I hope I'm in the right place... I am a fairly accomplished php
developer and have written quite a bit of code with it.  However, all of
my coding experience has been with scripting languages and I have never
had to deal with memory allocation and rarely ever dealt with pointers
or casting etc.

For instance...

with scripting I can simply access arguments by referencing the string
at argv[1] or ARGV[1] etc.  It looks like I should be able to do this
with c but I have to reference *argv[x] and *argv[x] only holds the
first character.  The following is a snippet...

int main(int argc, *argv[])
{
	int secondVar=*argv[2];
}

if the second argument is say ... 10, I only get the 1.  There is some
logic that I must follow that I can't see.  I've tried looking at
*argv[2][0] to see if it was one and *argv[2][1] was zero but is
aparently not the case.

I have looked at several howto/instruction documents and none seem to
yeild much.  

TIA

Again, I hope I'm in the right place...

Larry



More information about the Gcc-help mailing list