欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言中main函數(shù)兩個(gè)參數(shù)的作用

 更新時(shí)間:2023年09月20日 14:36:18   作者:西岸賢  
這篇文章主要介紹了C語(yǔ)言中main函數(shù)兩個(gè)參數(shù)的作用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一般我們?cè)谑褂肅語(yǔ)言時(shí)不太用到main函數(shù)自帶的參數(shù),因此最常見的main函數(shù)就像下面這樣。

int main()
{
	...
	...
}

上面這種main函數(shù)是省略了其形參的,C語(yǔ)言中規(guī)定main函數(shù)的參數(shù)只能有兩個(gè),習(xí)慣上這兩個(gè)參數(shù)寫為argc和argv,其中,第一個(gè)形參argc為整形,第二個(gè)參數(shù)argv為指向字符串的指針數(shù)組。因此,如果不省略其形參的話,真實(shí)的main函數(shù)就像下面這樣定義。

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

或者下面這樣。

int main(int argc,char *argv[])
{
	...
	...
}

說清楚這兩個(gè)參數(shù)的類型后,那么它們的功能是什么,或者有什么用處。先看下面一個(gè)例子。

#include <stdio.h>
int main(int argc, char **argv)
{
    printf("argc = %d\n",argc);
    printf("argv[0] = %s\n",argv[0]);
    printf("argv[1] = %s\n",argv[1]);
}

寫好這個(gè)C程序后,在終端使用下面的命令將其編譯為可執(zhí)行文件。

gcc filename.c -o filename

然后執(zhí)行這個(gè)可執(zhí)行文件,執(zhí)行結(jié)果如下圖所示。

在這里插入圖片描述

可以看到,第一個(gè)參數(shù)argc就是我們?cè)诿钚休斎氲膮?shù)的個(gè)數(shù),而第二個(gè)參數(shù)中argv[0]為自身運(yùn)行目錄的路徑和程序名,因?yàn)槲疫@里直接在該可執(zhí)行文件所在的文件夾下,因此路徑就是當(dāng)前路徑./,程序名就是這個(gè)可執(zhí)行文件的名字。第一次我們只是執(zhí)行了該文件,并沒有傳入?yún)?shù),因此argv[1]就是null的,再往后,我們?cè)?/a后再加一個(gè)用戶輸入的參數(shù),那么這個(gè)參數(shù)就被傳到了argv[1]里面了。優(yōu)化一下這個(gè)程序,代碼如下。

#include <stdio.h>
int main(int argc, char **argv)
{
    printf("argc = %d\n",argc);
    for(int i = 0; i < argc; i++)
        printf("argv[%d] = %s\n",i,argv[i]);
}

這樣不管我們?cè)趫?zhí)行這個(gè)文件時(shí)傳入多少個(gè)參數(shù),各個(gè)參數(shù)的值都會(huì)幫我們打印出來(lái)。

在這里插入圖片描述

總結(jié)一下,main函數(shù)中第一個(gè)參數(shù)(整型)就是統(tǒng)計(jì)我們?cè)诿钚袀魅氲膮?shù)個(gè)數(shù),其中,輸入的各個(gè)參數(shù)之間用空格隔開。第二個(gè)參數(shù)(字符指針數(shù)組)是存放用戶輸入的,下標(biāo)為0的存放的是可執(zhí)行文件的路徑及名稱,大于0的下標(biāo)存放的參數(shù)都是由用戶輸入的。這些由用戶在命令行輸入的值在程序里是直接可以使用的,例如argv[1]=1,然后在程序中將用戶輸入的這個(gè)參數(shù)通過write函數(shù)寫入,那么它就可以控制某個(gè)設(shè)備打開或者關(guān)閉,大致就是這個(gè)用法。因此,合理的使用main函數(shù)中的這兩個(gè)參數(shù),可以更好的幫我們達(dá)成目的。

到此這篇關(guān)于C語(yǔ)言中main函數(shù)兩個(gè)參數(shù)的作用的文章就介紹到這了,更多相關(guān)main函數(shù)參數(shù)的作用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ com編程學(xué)習(xí)詳解

    C++ com編程學(xué)習(xí)詳解

    這篇文章主要介紹了C++ COM編程的學(xué)習(xí)過程,在C++中,可以使用抽象基類來(lái)實(shí)現(xiàn)COM接口,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-09-09
  • 淺談C++ 類的實(shí)例中 內(nèi)存分配詳解

    淺談C++ 類的實(shí)例中 內(nèi)存分配詳解

    下面小編就為大家?guī)?lái)一篇淺談C++ 類的實(shí)例中 內(nèi)存分配詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2016-12-12
  • C 字符串?dāng)?shù)組排序的小例子

    C 字符串?dāng)?shù)組排序的小例子

    C 字符串?dāng)?shù)組排序的小例子,需要的朋友可以參考一下
    2013-03-03
  • 詳解C++中的指針、數(shù)組指針與函數(shù)指針

    詳解C++中的指針、數(shù)組指針與函數(shù)指針

    本文從初學(xué)者的角度,深入淺出地講解C++中的指針、數(shù)組指針與函數(shù)指針,對(duì)最常混淆的引用傳遞、值傳遞和指針傳遞做了區(qū)處,需要的朋友可以參考下
    2015-07-07
  • do...while(0)的妙用詳細(xì)解析

    do...while(0)的妙用詳細(xì)解析

    do...while(0)消除goto語(yǔ)句;通常,如果在一個(gè)函數(shù)中開始要分配一些資源,然后在中途執(zhí)行過程中如果遇到錯(cuò)誤則退出函數(shù),當(dāng)然,退出前先釋放資源
    2013-09-09
  • C++解密Chrome80版本數(shù)據(jù)庫(kù)的方法示例代碼

    C++解密Chrome80版本數(shù)據(jù)庫(kù)的方法示例代碼

    這篇文章主要介紹了C++解密Chrome80版本數(shù)據(jù)庫(kù)的方法示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • C++破壞MBR的代碼

    C++破壞MBR的代碼

    這篇文章主要介紹了C++破壞MBR的代碼,涉及到對(duì)硬盤的主引導(dǎo)記錄的破壞性操作,具有一定的參考價(jià)值,需要的朋友可以參考下
    2014-10-10
  • 用C語(yǔ)言實(shí)現(xiàn)2048游戲

    用C語(yǔ)言實(shí)現(xiàn)2048游戲

    這篇文章主要為大家詳細(xì)介紹了用C語(yǔ)言實(shí)現(xiàn)2048游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C++超詳細(xì)講解泛型

    C++超詳細(xì)講解泛型

    泛型編程,故如其名,是一個(gè)泛化的編程方式。其實(shí)現(xiàn)原理為程序員編寫一個(gè)函數(shù)/類的代碼示例,讓編譯器去填補(bǔ)出不同的函數(shù)實(shí)現(xiàn)
    2022-07-07
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單通訊錄

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單通訊錄

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評(píng)論