簡體   English   中英

未從命令行輸入內容時的Argv值

[英]Values of Argv when something is not entered from command line

嗨我想知道argv [1]或argv [2]會是什么值,如果我沒有提供命令行參數

你已經得到了大量錯誤的答案。 如果在命令行中沒有輸入任何內容,則argv[0]通常仍然包含程序的名稱,因此argc將為1. argv[argc]將包含一個空指針(始終在每個符合C或C ++的實現上)。 在C標准中,要求是§5.1.2.1.1/ 2的第二個要點。 在C ++標准中,它是§3.6.1/ 2。

這將是 垃圾 NULL

因此,在嘗試訪問命令行參數之前,應始終首先測試argc (參數計數)。

對於更詳細的信息。

如果你運氣好的話就是一個段落錯誤,如果你不幸的話就是垃圾。

使用argv的唯一安全方法是將其視為argc元素的數組。

for (int ii = 0; ii < argc; ++ii)
{
    // safe to use argv[ii];
    cout << argv[ii];
}

int ix = somevalue;
if (ix >= 0 && ix < argc)
{
    // safe to use argv[ix];
}

傑里的注意事項。 在大多數體系結構上取消引用NULL時,會出現段錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM