C語言的帶參數(shù)的main函數(shù)格式為main(int?argc,char*?argv[]),其中argc為參數(shù)個(gè)數(shù)加1,argv為參數(shù)列表,從argv[1]開始。編譯后生成可執(zhí)行文件,可以在執(zhí)行的程序后加參數(shù),比如編譯一個(gè)程序?yàn)閠est.exe,則在執(zhí)行時(shí)可以輸入:
創(chuàng)新互聯(lián)建站成立于2013年,先為喀左等服務(wù)建站,喀左等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為喀左企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
test.exe?1?firestone
在這里,argc等于3,argv[0]為"test.exe",argv[1]為"1",argv[2]為"firestone"。
如果有下面的程序:
#include?stdio.h
void?main(int?argc,char?*argv[])
{
printf("You've?input?%d?parameters.\n",argc-1);
for(int?i=1;iargc;i++)printf("The?No.%d?is:%s\n",i,argv[i]);
}
則上面的輸入會產(chǎn)生如下運(yùn)行結(jié)果:
You've?input?2?parameters.
The?No.1?is?1
The?No.2?is?firestone
形式參數(shù)和實(shí)際參數(shù)的功能是傳遞數(shù)據(jù)。
當(dāng)函數(shù)調(diào)用發(fā)生時(shí),實(shí)際參數(shù)的值被傳遞給形式參數(shù)。
形式參數(shù)變量僅在調(diào)用函數(shù)時(shí)分配內(nèi)存。
c語言參數(shù),就是我們每次用這個(gè)函數(shù)時(shí),都對一些數(shù)做相同的工作,這些數(shù)我們就把它作為參數(shù),如int
function(a,b){return
a
b:}.a和b都為參數(shù),我們每次用到這個(gè)函數(shù)時(shí)都是求a,b的和,但每次用時(shí)根據(jù)不同的需求a.b的值會不同,但函數(shù)中對他們的操作總是不變。明白了吧
C語言中的函數(shù)的作用是可以將一段經(jīng)常需要使用的代碼封裝起來,在需要使用時(shí)可以直接調(diào)用。
示例:
語言的函數(shù)定義和函數(shù)聲明
#includestdio.h
//使用函數(shù)前,需要在main函數(shù)前對使用的函數(shù)進(jìn)行聲明
int getMax(int, int);
void main() {
int t=getMax(12, 21);
printf("%d\n", t);
getchar();
}
int getMax(int a, int b) {
if (a b) {
return a;
}
else {
return b;
}
}
擴(kuò)展資料
scanf 函數(shù)
函數(shù)原型:int scanf(char *format [,argument,...])
功能:從標(biāo)準(zhǔn)輸入設(shè)備(一般指鍵盤)實(shí)現(xiàn)格式化輸入
返回值:成功返回讀入的數(shù)據(jù)項(xiàng)個(gè)數(shù)
函數(shù)參數(shù):format 格式化字符串
argument 輸入數(shù)據(jù)項(xiàng)的地址列表
常用格式類型參考printf函數(shù)的個(gè)格式類型
用法舉例:
從標(biāo)準(zhǔn)輸入設(shè)備中輸入一個(gè)整數(shù)到整形變量a中,輸入一個(gè)浮點(diǎn)數(shù)到浮點(diǎn)型變量b中
int a=0;
float b=0;
scanf("%d%f",a,b);
上面程序執(zhí)行后,從鍵盤輸入: 19 18.6 ,程序?qū)?19賦值給變量a, 18.6賦值給變量b 。
就是把函數(shù)的返回值作為參數(shù)來調(diào)用外層函數(shù)。比如有返回兩個(gè)數(shù)的大者的函數(shù)int
max(int
a,int
b),那要求三個(gè)數(shù)的最大者就可以這么調(diào)用max(max(a,b),c);,就是先求得a、b中的大者再與c進(jìn)行比較……
函數(shù)的參數(shù)分為形參和實(shí)參兩種。
形參出現(xiàn)在函數(shù)定義中,在整個(gè)函數(shù)體內(nèi)都可以使用,離開該函數(shù)則不能使用。實(shí)參出現(xiàn)在主調(diào)函數(shù)中,進(jìn)入被調(diào)函數(shù)后,實(shí)參變量也不能使用。
形參和實(shí)參的功能是作數(shù)據(jù)傳送,發(fā)生函數(shù)調(diào)用時(shí),主調(diào)函數(shù)把實(shí)參的值傳送給被調(diào)函數(shù)的形參從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送。
舉個(gè)例子:
定義一個(gè)函數(shù)s=f(a,b),功能是將a和b的差賦值給s,那么,a和b就是這個(gè)函數(shù)的兩個(gè)參數(shù)。
擴(kuò)展資料:
C語言的參數(shù)傳遞方式
方法有3種方式:值傳遞、地址傳遞、引用傳遞
tips:
被調(diào)用函數(shù)的形參只有函數(shù)被調(diào)用時(shí)才會臨時(shí)分配存儲單元,一旦調(diào)用結(jié)束占用的內(nèi)存便會被釋放
值傳遞和地址傳遞,傳遞的都是實(shí)參的一個(gè)拷貝
C語言中實(shí)參和形參之間的數(shù)據(jù)傳遞是單向的“值傳遞”,單向傳遞,只能由實(shí)參傳給形參,反之不行
輸出格式并沒有選擇%p而是選擇了%d,因?yàn)槭M(jìn)制的數(shù)看起來更直觀。
值傳遞
如果只是傳遞值的話:
#include stdio.h
//值傳遞傳值
void swap( int x, int y);
int main()
{
int a=2,b=3;
printf("before:實(shí)參為a,b\na=%d,地址為%d\nb=%d,地址為%d\n\n",a,a,b,b);
swap(a,b);
printf("after:實(shí)參為a,b\na=%d,地址為%d\nb=%d,地址為%d\n\n",a,a,b,b);
return 0;
}
void swap(int x,int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("inside:形參為x,y\nx=%d,地址為%d\ny=%d,地址為%d\n\n",x,x,y,y);
}