先日、main関数のプロトタイプに、こんな書き方をしているコードを見つけておや?となった。
int main(int argc, char **argv) {
/* ... */
}
確か教科書的には、main関数の引数はこうじゃなかったっけ?
int main(int argc, char *argv[]) {
/* ... */
}
どちらでもコンパイルは通るみたい。
確かに、引数の中のint argv[]
は、int *argv
と同じように配列の先頭のアドレスが渡されてくるから、似たようなものということか。
個人的には、charポインタの配列が渡ってくるんですよーの意味を込めて、教科書通りの書き方のほうが読みやすいとは思う。