char** v *char[]

问题描述 投票:0回答:1

当我阅读 C 代码时,我经常看到这样的情况:

int main(int argc, char **argv)

但我总是学会这样做:

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

那么,我为什么要使用其中一种而不是另一种呢?我知道它们在技术上是不同的,但我不太明白为什么我要使用其中一个而不是另一个。

提前致谢。

c pointers
1个回答
0
投票

从功能上来说,为了访问参数,这两种表示法是等效的。

[]
表示法可能具有区分指向单个元素的指针和指向数组的指针的边际优势;
char**
可能会被误读为
char*
类型的外参数。

但对于

main()
argv
来说不太可能。

© www.soinside.com 2019 - 2024. All rights reserved.