Mengapa argv
dinyatakan sebagai "pointer ke pointer ke indeks array pertama", bukan hanya menjadi "pointer ke indeks array pertama" ( char* argv
)?
Mengapa gagasan "pointer ke pointer" diperlukan di sini?
char* argv[]
menempatkan ruang di tempat yang salah. Katakan char *argv[]
, dan sekarang jelas bahwa ini berarti "ekspresi *argv[n]
adalah variabel tipe char
". Jangan terjebak dalam mencoba mencari tahu apa itu pointer dan apa itu pointer ke pointer, dan sebagainya. Deklarasi memberi tahu Anda operasi apa yang dapat Anda lakukan untuk hal ini.
char * argv[]
dengan konstruksi C ++ yang serupa std::string argv[]
, dan mungkin lebih mudah untuk diuraikan. ... Hanya saja, jangan mulai menulis seperti itu!
char &func(int);
yang tidak membuat &func(5)
memiliki tipe char
.
char* argv[]
atauchar**
. Itu adalah pointer ke pointer ke karakter; khususnya pointer luar menunjuk ke pointer pertama dalam sebuah array, dan pointer batin menunjuk ke karakter pertama dari string nul-terminated. Tidak ada indeks yang terlibat di sini.