gpt4 book ai didi

c++ - 主要参数约定

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:55:34 27 4
gpt4 key购买 nike

出于编码 IDE 的限制,我总是这样编写我的主要功能:

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

但是在 IDE 中,他们以 hello world 类型的应用程序结构开始,我看到它以不同的方式编写。例如在 Xcode 中,它有 argv 作为常量:

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

我还看到有人将 argv[] 声明为双指针,我不明白这样做的原因:

int main(int argc, char** argv)

是否有关于如何声明的任何标准或约定?我应该使用双指针还是常量?

红利问题:表示指针的星号应该放在数据类型之后,变量名之前还是中间分开?

最佳答案

是否有关于如何声明的任何标准或约定?我应该有一个双指针,还是一个常量?

这在 C++ 标准中有明确定义。

引用:
C++03 第 3.6.1 节:

第 2 段:

It shall have a return type of int, but otherwise its type is implementation-defined. All implementations shall allow both of the following definitions of main:

int main() { /* … */ }

and

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

In the latter form argc shall be the number of arguments passed to the program from the environment in which the program is run. If argc is nonzero these arguments shall be supplied inargv[0] through argv[argc-1] as pointers to the initial characters of null-terminated multibyte strings (NTMBSs) (17.3.2.1.3.2) and argv[0] shall be the pointer to the initial character of a NTMBS that represents the name used to invoke the program or "". The value of argc shall be nonnegative. The value of argv[argc] shall be 0. [Note: it is recommended that any further (optional) parameters be added after argv]

关于c++ - 主要参数约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com