1

可能重复:
main 的正确声明是什么?

我刚刚参加了我的第一次 C++ 考试。第一个问题是

int main(◊, char ** argv)
以下哪个建议不起作用(作为第一个形式参数替代◊):

    a) 字符 argc
    b) 整数 argc
    c) 双 argc
    d) 布尔型 argc


在 4 小时的纯手写个人考试中,答案占 2%。
允许使用所有工具,接受任何可编程设备或任何通信方式

谁能做到这一点:)?

4

4 回答 4

7

定义“有效”的含义。其中任何一个都可能有效,但一个有效的、符合标准的、格式良好的 C++ 程序具有以下任一签名:

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

所以 a)、c) 和 d) 是错误的。

于 2012-05-16T08:21:05.537 回答
3

定义“行不通”?

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
于 2012-05-16T08:25:56.673 回答
2

鉴于问题是问哪个不起作用。它必须是double所有其他的都是整数。

我相信这将是正确的答案,因为除了整数值之外,您不能对数组进行索引。但这假设您实际上想要索引argv数组。

但是在 C++ 考试中问一个多么糟糕的问题啊。

于 2012-05-16T08:24:50.587 回答
0

“int argc”是正确的用法。argc 表示传递给 main 的参数数量。所以它唯一的整数。

于 2012-05-16T08:24:35.513 回答