最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中int?main(int?argc,?char**?argv)的參數(shù)使用

 更新時(shí)間:2024年01月04日 11:51:35   作者:QFJIZHI  
int?main(int?argc,?char**?argv)?是C和C++程序的入口點(diǎn),其中argc和argv是用來(lái)接收從命令行傳遞給程序的參數(shù)的,本文就來(lái)介紹一下這兩個(gè)參數(shù)的含義,感興趣的可以了解一下的相關(guān)資料

int main(int argc, char** argv) 是 C 和 C++ 程序的入口點(diǎn),其中 argc 和 argv 是用來(lái)接收從命令行傳遞給程序的參數(shù)的。下面我將詳細(xì)解釋這兩個(gè)參數(shù)的含義,并給出一個(gè)例子來(lái)幫助理解。

參數(shù)解釋

  • int argc

    • argc 是 "argument count" 的縮寫(xiě),表示傳遞給程序的命令行參數(shù)的數(shù)量。

    • 它至少為 1,因?yàn)槊钚猩峡偸侵辽儆幸粋€(gè)參數(shù):程序的名稱(chēng)。

  • char** argv 或 char *argv[]

    • argv 是 "argument vector" 的縮寫(xiě),是一個(gè)指向字符指針數(shù)組的指針。

    • 每個(gè)元素 argv[i] 都是一個(gè)指向 C 字符串的指針,這個(gè)字符串包含了第 i 個(gè)命令行參數(shù)。

    • 按照慣例,argv[0] 是程序的名稱(chēng)。

    • argv 數(shù)組以 NULL 指針結(jié)束,但這個(gè) NULL 指針通常不包含在 argc 計(jì)數(shù)之內(nèi)。

舉例說(shuō)明

假設(shè)你有以下 C++ 程序:

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

如果你將這個(gè)程序編譯為 my_program 并從命令行運(yùn)行它,如下所示:

./my_program hello world 123
Program name: ./my_program  
Argument 1: hello  
Argument 2: world  
Argument 3: 123

在這個(gè)例子中:

  • argc 的值是 4,因?yàn)橛兴膫€(gè)參數(shù):程序名(./my_program)和三個(gè)用戶(hù)提供的參數(shù)(helloworld123)。

  • argv[0] 指向字符串 "./my_program"

  • argv[1] 指向字符串 "hello"。

  • argv[2] 指向字符串 "world"

  • argv[3] 指向字符串 "123"。

  • 注意這里沒(méi)有 argv[4],因?yàn)閿?shù)組索引是從 0 開(kāi)始的,并且在這個(gè)例子中只有四個(gè)元素。訪問(wèn) argv[4] 會(huì)導(dǎo)致未定義行為,因?yàn)樗隽藬?shù)組的邊界。實(shí)際上,按照 C 和 C++ 的標(biāo)準(zhǔn),argv 數(shù)組并不保證以 NULL 指針結(jié)束,盡管在某些系統(tǒng)上可能是這樣。你應(yīng)該總是依賴(lài) argc 來(lái)確定參數(shù)的數(shù)量。

基于OCCT的例子:

這是一個(gè)簡(jiǎn)單的C++程序,它用于讀取STEP文件并將其內(nèi)容轉(zhuǎn)換為另一種格式。

#include <STEPControl_Reader.hxx>
?
int main(int argc, char** argv)
{
  // Read from file.
  TopoDS_Shape shape;
  //
  if ( argc > 1 )
  {
    STEPControl_Reader readerBase;
    readerBase.ReadFile(argv[1]);
    std::cout << readerBase.TransferRoots() << "Base roots transferred" << std::endl;
  }
  else
  {
    std::cout << "Please, pass filename (STEP) as an argument." << std::endl;
    return 1;
  }
?
  return 0;
}
?

char** argv與char* argv[]區(qū)別

  • 指針是個(gè)地址。
  • char *a: a的值包含字符型數(shù)據(jù),取消對(duì)a的引用 (*a) 得到一個(gè)字符,不取消引用得到一個(gè)字符串,printf("%c",*a) 輸出一個(gè)字符或者 printf("%s",a)輸出字符串;
  • char **a: a的值包含一個(gè)地址,該地址包含字符字符型數(shù)據(jù),取消對(duì)a的引用(*a),得到該地址,再取消對(duì)該地址的引用(**a),得到一個(gè)字符,printf("%c",**a) 輸出一個(gè)字符 printf("%s",*a) 輸出字符串;
  • char *a[]: a是一個(gè)數(shù)組,數(shù)組的元素是地址(地址其實(shí)就是指針),地址包含的值是字符型數(shù)據(jù),printf("%c",*a[i]) 輸出一個(gè)字符,printf("%s",a[i])) 輸出字符串;
  • char *a或char **a可以改變a的值,char a*[]不能改變a的值。

到此這篇關(guān)于C++中int main(int argc, char** argv)的參數(shù)使用的文章就介紹到這了,更多相關(guān)C++ int main(int argc, char** argv)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++運(yùn)算符重載詳情介紹

    C++運(yùn)算符重載詳情介紹

    這篇文章主要介紹了C++運(yùn)算符重載,C++當(dāng)中除了函數(shù)可以重載之外,其實(shí)運(yùn)算符也是可以重載的,C++根據(jù)操作數(shù)的數(shù)目和類(lèi)型來(lái)決定要使用哪一種操作,下面一起進(jìn)入文章里哦阿姐更多詳情吧
    2022-01-01
  • 詳解C語(yǔ)言通過(guò)遞歸與非遞歸實(shí)現(xiàn)蛇形矩陣

    詳解C語(yǔ)言通過(guò)遞歸與非遞歸實(shí)現(xiàn)蛇形矩陣

    蛇形矩陣(Snake matrix)是矩陣的一種,常被應(yīng)用在編程題目與數(shù)學(xué)數(shù)列中,需要提取每條斜線(xiàn)里最小的數(shù)字,本篇文章將會(huì)通過(guò)遞歸和非遞歸來(lái)分別實(shí)現(xiàn)蛇形矩陣
    2022-02-02
  • C++實(shí)現(xiàn)Huffman的編解碼

    C++實(shí)現(xiàn)Huffman的編解碼

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)Huffman的編解碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 詳解C++中的四種類(lèi)型轉(zhuǎn)換運(yùn)算符

    詳解C++中的四種類(lèi)型轉(zhuǎn)換運(yùn)算符

    隱式類(lèi)型轉(zhuǎn)換是安全的,顯式類(lèi)型轉(zhuǎn)換是有風(fēng)險(xiǎn)的,C語(yǔ)言之所以增加強(qiáng)制類(lèi)型轉(zhuǎn)換的語(yǔ)法,就是為了強(qiáng)調(diào)風(fēng)險(xiǎn),讓程序員意識(shí)到自己在做什么,本文將給大家詳細(xì)介紹一下C++中的四種類(lèi)型轉(zhuǎn)換運(yùn)算符,需要的朋友可以參考下
    2023-09-09
  • Opencv實(shí)現(xiàn)輪廓提取功能

    Opencv實(shí)現(xiàn)輪廓提取功能

    這篇文章主要為大家詳細(xì)介紹了Opencv實(shí)現(xiàn)輪廓提取功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • C++中stack和queue的用法及說(shuō)明

    C++中stack和queue的用法及說(shuō)明

    這篇文章主要介紹了C++中stack和queue的用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-10-10
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之二叉鏈表創(chuàng)建二叉樹(shù)

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之二叉鏈表創(chuàng)建二叉樹(shù)

    這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之?二叉鏈表創(chuàng)建二叉樹(shù),下文我們?yōu)榱烁奖愕氖褂枚鏄?shù)結(jié)構(gòu)體,可以使用?typedef?對(duì)結(jié)構(gòu)體進(jìn)行命名,具體內(nèi)容需要的小伙伴可以參考一下
    2022-02-02
  • C語(yǔ)言實(shí)現(xiàn)三子棋程序

    C語(yǔ)言實(shí)現(xiàn)三子棋程序

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)三子棋程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語(yǔ)言實(shí)現(xiàn)輸出1000以?xún)?nèi)的所有完全數(shù)

    C語(yǔ)言實(shí)現(xiàn)輸出1000以?xún)?nèi)的所有完全數(shù)

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)輸出1000以?xún)?nèi)的所有完全數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • C++中浮點(diǎn)數(shù)、double類(lèi)型如何與0值作比較詳解

    C++中浮點(diǎn)數(shù)、double類(lèi)型如何與0值作比較詳解

    浮點(diǎn)數(shù)在內(nèi)存中的存儲(chǔ)機(jī)制和整型數(shù)不同,其有舍入誤差,在計(jì)算機(jī)中用近似表示任意某個(gè)實(shí)數(shù),這篇文章主要介紹了C++中浮點(diǎn)數(shù)、double類(lèi)型如何與0值作比較的相關(guān)資料,需要的朋友可以參考下
    2025-03-03

最新評(píng)論

琼海市| 辽阳市| 横山县| 陕西省| 蓬溪县| 金门县| 纳雍县| 雷山县| 屯昌县| 英吉沙县| 勃利县| 白城市| 呼伦贝尔市| 右玉县| 栾城县| 开江县| 景德镇市| 姜堰市| 搜索| 会东县| 平舆县| 香港 | 康平县| 东阿县| 阳泉市| 纳雍县| 类乌齐县| 永泰县| 株洲市| 东兰县| 五寨县| 泉州市| 凌海市| 宁蒗| 巴彦县| 石首市| 巴林左旗| 洪泽县| 温州市| 兴城市| 邯郸县|