亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

INARGC,char*argv[]是什么意思?

INARGC,char*argv[]是什么意思?

C++ C
臨摹微笑 2019-05-30 17:24:25
INARGC,char*argv[]是什么意思?在許多C+IDE和編譯器中,當它為您生成主要函數時,如下所示:int main(int argc, char *argv[])當我使用命令行編譯器在沒有IDE的情況下編寫C+時,我輸入:int main()沒有任何參數。這意味著什么,這對我的計劃至關重要嗎?
查看完整描述

4 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

argvargc是如何將命令行參數傳遞給main()在C和C+中。

argc所指向的字符串數。argv。這將(實際上)是1加上參數的數量,因為幾乎所有的實現都會將程序的名稱放在數組的前面。

變量被命名為argc (參數計數)和argv (變元向量),但它們可以被賦予任何有效的標識符:int main(int num_args, char** arg_strings)同樣有效。

它們也可以完全省略,int main(),如果您不打算處理命令行參數。

嘗試以下程序:

#include <iostream>int main(int argc, char** argv) {
    std::cout << "Have " << argc << " arguments:" << std::endl;
    for (int i = 0; i < argc; ++i) {
        std::cout << argv[i] << std::endl;
    }}

./test a1 b2 c3威爾輸出

Have 4 arguments:
./test
a1
b2
c3


查看完整回答
反對 回復 2019-05-30
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

argc從命令行傳遞到程序中的參數,并且argv是參數數組。

您可以循環遍歷參數,知道它們的數量,如下所示:

for(int i = 0; i < argc; i++){
    // argv[i] is the argument at index i}


查看完整回答
反對 回復 2019-05-30
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

假設您這樣運行您的程序(使用sh(語法):

myprog arg1 arg2 'arg 3'

如果你宣布你的主int main(int argc, char *argv[]),那么(在大多數環境中),main()將被稱為:

p = { "myprog", "arg1", "arg2", "arg 3", NULL };exit(main(4, p));

但是,如果您聲明您的主int main(),它將被稱為

exit(main());

你的論點也不能通過。

還有兩件事要注意:

  1. 這是僅有的兩個標準強制簽名。

    main

    。如果特定的平臺接受額外的參數或不同的返回類型,那么這是一個擴展,在可移植程序中不應該依賴它。
  2. *argv[]

    **argv

    是完全等價的,所以你可以寫

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

    int main(int argc, char **argv).


查看完整回答
反對 回復 2019-05-30
?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

參數main表示程序啟動時提供給程序的命令行參數。這個argc參數表示命令行參數的數量,并且char *argv[]表示命令行上提供的單個參數的字符串數組(字符指針)。


查看完整回答
反對 回復 2019-05-30
  • 4 回答
  • 0 關注
  • 705 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號