国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

c++ - c語言指針的問題
給我你的懷抱
給我你的懷抱 2017-06-30 09:57:22
0
7
1146

*argv[]
argv是地址,*argv[]是地址指向的變量。
既然argv是地址,為什么能這樣調(diào)用argv[1]

給我你的懷抱
給我你的懷抱

全部回復(fù)(7)
曾經(jīng)蠟筆沒有小新

argv[1] 等價于 *(argv+1)

我想大聲告訴你

想必你是問的是 int main(int argc, char *argv[]) 吧。其實你想這么寫也完全沒有什么問題的 int main(int argc, char **argv)。

如果你定義一個 char *s = '2333',那這個 s 指的是什么?字符串的首地址吧。同理,*argv[1] 存的是什么?第一個字符串的首地址吧。你可以簡單地這么理解,要深入神馬的你可以去翻翻書。

char *s = "23333";
char *z = "34444";
char *argv[] = {s, z};

int a = 0;
int b = 1;
int c[] = {a, b};

有意思了吧~其實有時候你想理解,就是換個寫法的問題。

Ty80

樓主是想說

int main(int argc, char *argv[])

中的*argv[]吧?

char *argv[]是一個數(shù)組,數(shù)組的元素是char *,每一個char *都用于指向一個字符串的首地址。所以argv[1]就是指向第二個字符串的首地址(我們假設(shè)第一個字符串是argv[0])。所以說,argv[1]也還是地址,是一個字符串的首地址。

數(shù)組和指針只有在作為函數(shù)參數(shù)時候才可以認(rèn)為是一樣的,所以這里的char *argv[]也可以寫成char **argv,不知道這樣是不是好理解些。

劉奇

傳參時類型為*argv[], 相當(dāng)于**argv,即為指針的指針

巴扎黑

這里*argv[]定義的是指針數(shù)組,有n個指針類型的數(shù)組元素(argv[0],argv[1],...,argv[n])
argv[1]是指針數(shù)組的第2個元素,仍是一個指針,*(argv+1)是指針數(shù)組的第2個元素指向的值,是一個值。)

argv[1]是地址,具體怎么調(diào)用,要結(jié)合具體的上下文代碼來分析。
一般會把argv[1]放在另一個指針里int *p = (int*)argv[1];,然后下文*p取得*argv[1]的值。

伊謝爾倫

數(shù)組的名稱其實就是一個地址,所以這樣用沒毛病。

為情所困

在C語言中,數(shù)組本來就是個地址

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板