微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – argc和argv的目的是什么?

参见英文答案 > What is the proper declaration of main?                                    5个

int main( int argc,char ** argv ){
//code here
 return 0; }

我知道:

> argc表示命令行参数的数量,包括文件
> char ** argv应该是一个数组的char *,最初表示为char * argv []

假设我是对的,与char * argv []相比,相对较新的符号char ** argv是什么?它指向什么?

我读过这篇文章
但是,它似乎解释了争论的地方而已.

解决方法

C标准中带参数的主要原型是:

int main(int argc,char *argv[]) { ... }

现在在C中,类型数组的函数参数被调整1)到类型指针,即:

void foo(T param[])

相当于

void foo(T *param)

所以使用char * argv []或char ** argv作为主要参数是完全一样的.

 1)(C99,6.7.5.3函数声明符(包括原型)p15)“[…](在确定类型兼容性和复合类型时,使用函数或数组类型声明的每个参数都被视为具有调整后的类型并且使用限定类型声明的每个参数都被视为具有其声明类型的非限定版本.)“

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐