的值,如果我的Visual Studio下編譯該代碼2013的argc從不具有上面2
int main(int argc, char* argv[])
{
std::cout << "arg count: "<< argc << "/n";
}
,然後用沒有額外的參數(即,>的Program.exe)運行它,它輸出
arg count: 1
用1個參數(>的Program.exe ARG1)它輸出
arg count: 2
但是,這是這樣會很奇怪。如果我輸入(> program.exe arg1 arg2)它輸出
arg count: 2
「arg count」應該是3,應該不是嗎?
與(>的Program.exe ARG1參數3)它輸出
arg count: 2
它應該是在這種情況下4 ...
印刷的argv [3]由於某種原因,工作正常。
爲什麼會發生這種情況?
而當你擺脫了嘗試打印'的argv [3]'的,會發生什麼?這會將未定義的行爲引入到您的程序中。 –
你能告訴你如何提供這些參數嗎?具體來說,你如何調用該程序? –
來自'argv'的最後一個指針通常被初始化爲'NULL',即可以在沒有索引的情況下迭代參數。 –