main函數(shù)包含兩個參數(shù),比如代碼:
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)隆陽,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
#include?stdio.h
int?main(int?argc,?char?*argv[])
{
int?i?=?0;
for?(;?i??argc;?++i)
{
printf("Arg?index:%d,value:%s\n",?i,?argv[i]);
}
return?0;
}
其中,argc表示參數(shù)的個數(shù),argv是一個指針數(shù)組,里面保存的是參數(shù)列表。
默認(rèn)情況下,argc的個數(shù)為1,即主程序的名字,argv[0]里就是主程序名字
如果要給主程序傳參,在主程序后面跟上參數(shù)就行了,假如程序名叫Send.exe,則使用如下方式調(diào)用:Send.exe arg1 arg2 arg
參數(shù)之間用空格隔開
如圖:
如果在開發(fā)環(huán)境里面調(diào)用,也可以在IDE里設(shè)置參數(shù),如VC6里面:
在工程--設(shè)置,選中調(diào)試選項(xiàng)卡,在應(yīng)用程序參數(shù)里面輸入?yún)?shù)即可,空格隔開多個參數(shù)
C語言中,函數(shù)調(diào)用的一般形式為:函數(shù)名(實(shí)際參數(shù)表)
對無參函數(shù)調(diào)用時(shí)則無實(shí)際參數(shù)表。實(shí)際參數(shù)表中的參數(shù)可以是常數(shù),變量或其它構(gòu)造類型數(shù)據(jù)及表達(dá)式。各實(shí)參之間用逗號分隔。
在C語言中,可以用以下幾種方式調(diào)用函數(shù):
1、函數(shù)表達(dá)式:函數(shù)作為表達(dá)式中的一項(xiàng)出現(xiàn)在表達(dá)式中,以函數(shù)返回值參與表達(dá)式的運(yùn)算。這種方式要求函數(shù)是有返回值的。例如:z=max(x,y)是一個賦值表達(dá)式,把max的返回值賦予變量z。
2、函數(shù)語句:函數(shù)調(diào)用的一般形式加上分號即構(gòu)成函數(shù)語句。例如: ? ?printf ("%d",a);scanf ("%d",b);都是以函數(shù)語句的方式調(diào)用函數(shù)。
3、函數(shù)實(shí)參:函數(shù)作為另一個函數(shù)調(diào)用的實(shí)際參數(shù)出現(xiàn)。這種情況是把該函數(shù)的返回值作為實(shí)參進(jìn)行傳送,因此要求該函數(shù)必須是有返回值的。
C語言,是一種通用的、過程式的編程語言,廣泛用于系統(tǒng)與應(yīng)用軟件的開發(fā)。具有高效、靈活、功能豐富、表達(dá)力強(qiáng)和較高的移植性等特點(diǎn),在程序員中備受青睞。最近25年是使用最為廣泛的編程語言。
C語言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)于1970年 由 肯·湯普遜(Ken Thompson)所研制出的B語言的基礎(chǔ)上發(fā)展和完善起來的。目前,C語言編譯器普遍存在于各種不同的操作系統(tǒng)中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C語言的設(shè)計(jì)影響了許多后來的編程語言,例如C++、Objective-C、Java、C#等。
直接調(diào)用即可。如下示例:
#includestdio.h#define?sum(b,c){int?d=0;d=b+c;printf("兩者的和:%d\n",d);}int?main(){????int?x=0,y=0;????scanf("%d%d",x,y);????sum?(x,y);????return?0;}
拓展資料
使用宏函數(shù)或者宏函數(shù)時(shí),注意如下幾點(diǎn):
1.宏函數(shù)的參數(shù)沒有類型,預(yù)處理器只負(fù)責(zé)做形式上的替換,而不做參數(shù)類型檢查,所以傳參時(shí)要格外小心。
2.宏函數(shù)定義要注意格式,尤其是括號。
如果上面的宏函數(shù)寫成 #define MAX(a, b) (ab?a:b),省去內(nèi)層括號,則宏展開就成了k = (i0x0fj0x0f?i0x0f:j0x0f),運(yùn)算的優(yōu)先級就錯了。同樣道理,這個宏定義的外層括號也是不能省的。若函數(shù)中是宏替換為 ++MAX(a,b),則宏展開就成了 ++(a)(b)?(a):(b),運(yùn)算優(yōu)先級也是錯了。
3.宏函數(shù)往往會導(dǎo)致較低的代碼執(zhí)行效率。
若是普通函數(shù),則通過遞歸,可取的最大值,時(shí)間復(fù)雜度為O(n)。但若是宏函數(shù),則宏展開為( a[n]max(n-1)?a[n]:max(n-1) ),其中max(n-1)被調(diào)用了兩遍,這樣依此遞歸下去,時(shí)間復(fù)雜度會很高。
#include stdio.h
void fun(int * a,int k);
void main()
{
int a[10];
printf("請輸入10個整數(shù):\n");
for(int i=0;i10;i++)
{
scanf("%d",a[i]);
}
fun(a,sizeof(a)/sizeof(a[0]));
}
void fun(int a[],int k)//這就是你想要的函數(shù)
{
int g0=0,t0=0,e0=0;/*g0就是0,t0就是小于0,e0就等0*/
for(int i=0;ik;i++)
{
if(a[i]0) g0++;
if(a[i]==0) e0++;
if(a[i]0) t0++;
}
printf("大于0的個數(shù)為:%d\n",g0);
printf("小于0的個數(shù)為:%d\n",t0);
printf("等于0的個數(shù)為:%d\n",e0);
}
/*
說明就和ichenq的差不多,只是ichenq的那個有問題,比如他的if語句里多了幾個";"號,導(dǎo)致無沒通過,另外我用他的函數(shù)來測試得不到想要的結(jié)果
sizeof(a)/sizeof(a[0])就是數(shù)組a的長度*/
這就是遞歸調(diào)用
遞歸要兩個方面注意
一個是結(jié)束遞歸的條件,也就是當(dāng)滿足一個條件是,返回一個固定的值
一個是改變遞歸條件的語句。也就是不滿足條件的時(shí)候,調(diào)用自身,但是函數(shù)的參數(shù)要改變
如求n!就是階乘
int f(int n)
{
if(n==0)
return 0;
if(n==1) //這里是結(jié)束條件
return 1;
else
return n*f(n-1); //這里是改變條件
}