๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ

int main ( int argc, char ** argv )

by ๐“ƒ๐’ถ๐“ƒ๐’ถ๏ฝก 2015. 3. 9.

argc (argument count), argv (argument vector)

 

int main ()

int main ( void )

int main ( int argc, char ** argv )

 

argc, argv๋Š” ๋ช…๋ นํ”„๋กฌํ”„ํŠธ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ณค์„ ๋•Œ ์ธ์ž๋ฅผ ๋‹ด์„ ๋ฐฐ์—ด์ด๋‹ค.

 

argc : the number of strings pointed to by argv (number of arguments + 1)

argv : the array of arguments

 

 

 

Running it with ./test a1 b2 c3 will output:

 

Have 4 arguments:

./test

a1

b2

c3

 

 

โ€ป char ** argv VS. char * argv[]

 

char** argv: pointer to a pointer to a char

char* argv[]: pointer to an array

 

"The name of an array is a pointer to the first element of the array."

 

char text[] = "A string of characters.";

 

์œ„์—์„œ "text" ๋ณ€์ˆ˜๋Š” char * type์ด๋‹ค.

[index]๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ array์˜ element์— ์ ‘๊ทผํ•  ๋•Œ, ์‹ค์ œ๋กœ๋Š” ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐํ˜•์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ index์˜ offset์„ ํ–‰๋ ฌ์˜ ์ฒซ๋ฒˆ์งธ ์š”์†Œ์˜ ํฌ์ธํ„ฐ์— ๋”ํ•˜๊ณ  ๊ทธ ์ฃผ์†Œ๋ฅผ (=ํฌ์ธํ„ฐ) ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

ํฌ์ธํ„ฐ๋Š” ๋‹ค๋ฅธ ๋ณ€์ˆ˜ ํ˜น์€ ๊ทธ ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งํ•œ๋‹ค.

ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ์—ญ์ฐธ์กฐ(direferencing)๋ผ๊ณ  ํ•œ๋‹ค.