1

重複の可能性:
main の適切な宣言は何ですか?

初めての C++ 試験に参加しました。最初の質問は

int main(◊, char ** argv)
次の提案のうち、機能しないものはどれですか (◊ の最初の仮パラメーターの代用として):

    a) char argc
    b) int argc
    c) 二重引数
    d) bool 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 は、メインに渡されるパラメーターの数を表します。したがって、その唯一のintです。

于 2012-05-16T08:24:35.513 に答える