可能重复:
main 的正确声明是什么?
我刚刚参加了我的第一次 C++ 考试。第一个问题是
int main(◊, char ** argv)
以下哪个建议不起作用(作为第一个形式参数替代◊):
a) 字符 argc b) 整数 argc c) 双 argc d) 布尔型 argc
在 4 小时的纯手写个人考试中,答案占 2%。
允许使用所有工具,接受任何可编程设备或任何通信方式
谁能做到这一点:)?
可能重复:
main 的正确声明是什么?
我刚刚参加了我的第一次 C++ 考试。第一个问题是
int main(◊, char ** argv)
以下哪个建议不起作用(作为第一个形式参数替代◊):
a) 字符 argc b) 整数 argc c) 双 argc d) 布尔型 argc
在 4 小时的纯手写个人考试中,答案占 2%。
允许使用所有工具,接受任何可编程设备或任何通信方式
谁能做到这一点:)?
定义“有效”的含义。其中任何一个都可能有效,但一个有效的、符合标准的、格式良好的 C++ 程序具有以下任一签名:
int main()
int main(int argc, char** argv)
int main(int argc, char* argv[])
所以 a)、c) 和 d) 是错误的。
定义“行不通”?
int main(char argc, char ** argv)
{
printf("%d\n", argc);
return 0;
}
./a.out 1 2 3
Output: 4
int main(int argc, char ** argv)
{
printf("%d\n", argc);
return 0;
}
./a.out 1 2 3
Output: 4
int main(double argc, char ** argv)
{
printf("%d\n", *(int*)&argc);
return 0;
}
./a.out 1 2 3
Output: 4
int main(bool argc, char ** argv)
{
printf("%d\n", argc);
return 0;
}
./a.out 1 2 3
Output: 4
鉴于问题是问哪个不起作用。它必须是double
所有其他的都是整数。
我相信这将是正确的答案,因为除了整数值之外,您不能对数组进行索引。但这假设您实际上想要索引argv
数组。
但是在 C++ 考试中问一个多么糟糕的问题啊。
“int argc”是正确的用法。argc 表示传递给 main 的参数数量。所以它唯一的整数。