*argv[]argv はアドレス、*argv[] はアドレスが指す変数です。 argv はアドレスであるのに、なぜ argv[1] をこのように呼び出すことができるのでしょうか?
argv[1] は *(argv+1) と同等です
あなたはint main(int argc, char *argv[]) 吧。其实你想这么写也完全没有什么问题的 int main(int argc, char **argv)について質問しているはずです。
int main(int argc, char *argv[])
int main(int argc, char **argv)
を定義した場合、char *s = '2333',那这个 s 指的是什么?字符串的首地址吧。同理,*argv[1]には何が保存されますか?最初の文字列の最初のアドレス。もっと深く知りたい場合は、このように理解することができます。
char *s = '2333'
s
*argv[1]
面白いですね~ 実は、理解したければ書き方を変えるだけで済む場合もあります。
元投稿者が言いたいこと
の*argv[]ですよね?
*argv[]
char *argv[]是一个数组,数组的元素是char *,每一个char *都用于指向一个字符串的首地址。所以argv[1]就是指向第二个字符串的首地址(我们假设第一个字符串是argv[0])。所以说,argv[1] はアドレスでもあり、文字列の最初のアドレスです。
char *argv[]
char *
argv[1]
配列とポインタは、関数のパラメータとして使用される場合にのみ同じと見なすことができるため、char *argv[]也可以写成char **argvここでは、これが理解しやすいかどうかはわかりません。
char **argv
パラメータを渡すときの型は*argv[]で、これはポインタへのポインタである**argvと同等です
ここ*argv[]定义的是指针数组,有n个指针类型的数组元素(argv[0],argv[1],...,argv[n])(argv[1]是指针数组的第2个元素,仍是一个指针,*(argv+1)は、ポインタ配列の 2 番目の要素が指す値、つまり値です。 )
argv[0],argv[1],...,argv[n]
*(argv+1)
argv[1]是地址,具体怎么调用,要结合具体的上下文代码来分析。一般会把argv[1]放在另一个指针里int *p = (int*)argv[1];,然后下文*p取得*argv[1]の値。
int *p = (int*)argv[1];
*p
配列の名前は実際にはアドレスなので、このように使用しても問題はありません。
C言語では配列は本来アドレスです
argv[1] は *(argv+1) と同等です
あなたは
int main(int argc, char *argv[])
吧。其实你想这么写也完全没有什么问题的int main(int argc, char **argv)
について質問しているはずです。を定義した場合、
リーリーchar *s = '2333'
,那这个s
指的是什么?字符串的首地址吧。同理,*argv[1]
には何が保存されますか?最初の文字列の最初のアドレス。もっと深く知りたい場合は、このように理解することができます。面白いですね~ 実は、理解したければ書き方を変えるだけで済む場合もあります。
元投稿者が言いたいこと
リーリーの
*argv[]
ですよね?char *argv[]
是一个数组,数组的元素是char *
,每一个char *
都用于指向一个字符串的首地址。所以argv[1]就是指向第二个字符串的首地址(我们假设第一个字符串是argv[0])。所以说,argv[1]
はアドレスでもあり、文字列の最初のアドレスです。配列とポインタは、関数のパラメータとして使用される場合にのみ同じと見なすことができるため、
char *argv[]
也可以写成char **argv
ここでは、これが理解しやすいかどうかはわかりません。パラメータを渡すときの型は*argv[]で、これはポインタへのポインタである**argvと同等です
ここ
*argv[]
定义的是指针数组,有n个指针类型的数组元素(argv[0],argv[1],...,argv[n]
)(
argv[1]
是指针数组的第2个元素,仍是一个指针,*(argv+1)
は、ポインタ配列の 2 番目の要素が指す値、つまり値です。 )argv[1]
是地址,具体怎么调用,要结合具体的上下文代码来分析。一般会把
argv[1]
放在另一个指针里int *p = (int*)argv[1];
,然后下文*p
取得*argv[1]
の値。配列の名前は実際にはアドレスなので、このように使用しても問題はありません。
C言語では配列は本来アドレスです