*argv[] argv ialah alamat, *argv[] ialah pembolehubah yang ditunjuk oleh alamat. Memandangkan argv ialah alamat, kenapa argv[1] boleh dipanggil seperti ini
Anda mesti bertanya tentang int main(int argc, char *argv[]) 吧。其实你想这么写也完全没有什么问题的 int main(int argc, char **argv).
Jika anda mentakrifkan char *s = '2333',那这个 s 指的是什么?字符串的首地址吧。同理,*argv[1] apakah yang disimpannya? Alamat pertama rentetan pertama. Anda boleh memahaminya dengan cara ini Jika anda ingin mendalami, anda boleh membaca buku itu.
char *s = "23333";
char *z = "34444";
char *argv[] = {s, z};
int a = 0;
int b = 1;
int c[] = {a, b};
Memang menarik~ Malah, kadangkala jika anda ingin memahami, ia hanya perlu mengubah cara anda menulisnya.
char *argv[]是一个数组,数组的元素是char *,每一个char *都用于指向一个字符串的首地址。所以argv[1]就是指向第二个字符串的首地址(我们假设第一个字符串是argv[0])。所以说,argv[1] juga merupakan alamat, yang merupakan alamat pertama rentetan.
Tatasusunan dan penunjuk hanya boleh dianggap sama apabila digunakan sebagai parameter fungsi, jadi char *argv[]也可以写成char **argv di sini, saya tidak tahu sama ada ini lebih mudah difahami.
Di sini*argv[]定义的是指针数组,有n个指针类型的数组元素(argv[0],argv[1],...,argv[n]) (argv[1]是指针数组的第2个元素,仍是一个指针,*(argv+1) ialah nilai yang ditunjukkan oleh elemen kedua tatasusunan penunjuk, iaitu nilai. )
argv[1] bersamaan dengan *(argv+1)
Anda mesti bertanya tentang
int main(int argc, char *argv[])
吧。其实你想这么写也完全没有什么问题的int main(int argc, char **argv)
.Jika anda mentakrifkan
char *s = '2333'
,那这个s
指的是什么?字符串的首地址吧。同理,*argv[1]
apakah yang disimpannya? Alamat pertama rentetan pertama. Anda boleh memahaminya dengan cara ini Jika anda ingin mendalami, anda boleh membaca buku itu.Memang menarik~ Malah, kadangkala jika anda ingin memahami, ia hanya perlu mengubah cara anda menulisnya.
Poster asal nak cakap
dalam
*argv[]
, kan?char *argv[]
是一个数组,数组的元素是char *
,每一个char *
都用于指向一个字符串的首地址。所以argv[1]就是指向第二个字符串的首地址(我们假设第一个字符串是argv[0])。所以说,argv[1]
juga merupakan alamat, yang merupakan alamat pertama rentetan.Tatasusunan dan penunjuk hanya boleh dianggap sama apabila digunakan sebagai parameter fungsi, jadi
char *argv[]
也可以写成char **argv
di sini, saya tidak tahu sama ada ini lebih mudah difahami.Jenis semasa menghantar parameter ialah *argv[], yang bersamaan dengan **argv, iaitu penunjuk kepada penunjuk
Di sini
Nilai*argv[]
定义的是指针数组,有n个指针类型的数组元素(argv[0],argv[1],...,argv[n]
)(
argv[1]
是指针数组的第2个元素,仍是一个指针,*(argv+1)
ialah nilai yang ditunjukkan oleh elemen kedua tatasusunan penunjuk, iaitu nilai. )argv[1]
是地址,具体怎么调用,要结合具体的上下文代码来分析。一般会把
argv[1]
放在另一个指针里int *p = (int*)argv[1];
,然后下文*p
取得*argv[1]
.Nama tatasusunan sebenarnya adalah alamat, jadi tidak ada salahnya menggunakannya dengan cara ini.
Dalam bahasa C, tatasusunan pada asalnya ialah alamat