CodePudding user response:
Argv is an array of char * each element is a pointerAs the first element address and the address of the argv is 0 x0000413433323110
The first element of the data is
Is 30, 31 32 33 34 00 00 41
The small end model corresponding address is
0 x0000413433323130
Argv 0 x20 a byte is behind argv [0]
Is the third line 31 00 43...
No need to worry about 0 at the end of the back of the data string
So the program name is 0 x31 x43 0 0 x00 said string
1 c
Note to uppercase
At the back of the and so on
The first parameter of the pointer is 0 x00413433323133
Is behind the argv 0 x23 bytes
From the first line of 30, 31 and 32... Began to count the number of x23 0
Is the third row fourth number 30 00...
No need to worry about 0 end behind
The first argument string data is 30 00
Is 0
Later will not continue to say the
CodePudding user response:
Identifiers cannot begin with Numbers, isn't it?1 c is not illegal?
.
CodePudding user response:
Ah, that is not identifier is compiled the execution of the file nameCodePudding user response:
is oh, I made a mistake,CodePudding user response:
First pointer is 8 bytes of a 64 - bit system, so each address to 8 bytes of data storage,First argv parameters for the program name, look from the address should be a little back-end storage way, argv [0] should be "01234 a", is the program name,
Argv [1] is "31234 a"
Argv [2] is "51234 a"
8 bytes are all \ 0, after the second line that has no parameters, the parameters to here don't preach,
CodePudding user response: