in C++

Main、argc、argv

最近在看C++ Sockets Library時,竟然開始使用main的這兩個函數
以前一直都沒用過,也沒需要,所以一直沒去搞懂…
趁著這次,就去找找相關資料囉!
都是轉貼過來的O_O(原始連結在最底下)

C/C++語言中的main函數,經常帶有參數argc,argv,如下:

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

這兩個參數的作用是什麼呢?argc 是指命令行輸入參數的個數,argv 存儲了所有的命令行參數。假如你的程式是hello.exe,如果在命令行(執行 > cmd)運行該程式,運行命令為:

 hello.exe Shiqi Yu

那麼,argc的值是 3,argv[0]是"hello.exe",argv[1]是"Shiqi",argv[2]是"Yu"。 Image:Hello-argc-argv.png

下面的程式演示 argc 和 argv 的使用:

    #include <stdio.h>

    int main(int argc, char ** argv)
    {
        int i;
        for ( i=0; i < argc; i++ )
        printf( "Argument %d is %s.\n", i, argv[i] );
        return 0;
    }

假如上述代碼編譯為 hello.exe,那麼運行

 hello.exe a b c d e

將得到

 Argument 0 is hello.exe.
Argument 1 is a.
Argument 2 is b.
Argument 3 is c.
Argument 4 is d.
Argument 5 is e.

運行

 hello.exe lena.jpg

將得到

 Argument 0 is hello.exe.
Argument 1 is lena.jpg.


來源:
       OpenCV China

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.