1. 程式人生 > >C++ 中main(char ** argv)的引數傳遞

C++ 中main(char ** argv)的引數傳遞

1.首先字串常量,存在記憶體的靜態資料區,其本身的返回值,為char *型別,即指向該字串常量的指標;

2.正常情況下,宣告的main為(int argc,char *argv[ ]),其為指向字串的指標,將其改為char **argv後,argv指向char *,即argv存的是指向字串的指標的地址;

3.也就是說,char *指向字串的第一個位元組的地址,而,輸入給main函式的,並不是具體的hello的字串,而是,指向hello的字串的地址;

4.*argv被傳遞的就是這個地址,有點類似於

void reset(int *ip)
{
  *ip=0;
}
//呼叫
reset(&x);

而,在傳遞給main是,x為地址,因此,**argv指向地址的地址,*argv指向地址,最終,argv[0~n]也就指向了引數傳遞