C專題:函式
阿新 • • 發佈:2020-12-12
技術標籤:C
這裡寫目錄標題
建立並使用函式
一個函式的例子
#include<stdio.h>
#define NAME "GIGATHINK, INC."
#define ADDRESS "101 Megabuck Plaza"
#define PLACE "Megapolis, CA 94904"
#define WIDTH 40
void starbar(void);//宣告函式
//這個函式的作用是列印(*)這個符號
int main(void)
{
starbar();//呼叫函式
printf("%s\n",NAME);
printf("%s\n",ADDRESS);
printf("%s\n",PLACE);
starbar();//呼叫函式
return 0;
}
void starbar(void)
{
int count;
for(count=1;count<=WIDTH;count++)
putchar('*');
putchar('\n');
}
執行結果
函式的結構
實際引數 函式名(形式引數)
void starbar(void)
int main(void)也是一個函式,他是主函式。
C語言程式先讀取主函式,其他函式在主函式中被呼叫。
實際引數(實參)
實參代表的是函式的返回值型別。
對於主函式main來說,通常返回值為int型別。
#include<stdio.h>
int main(void)
{
...
return 0;
}
也就是最後的return 0;0為int型別。
對於上文的starbar函式來說,返回值是void型別,也就是沒有返回值。
void starbar(void)
{
...
}
當然你可以返回double型別,char型別,指標型別等。
使用返回值
#include<stdio.h>
int fanhui(void);
int main(void)
{
...
n=fanhui();//返回的a的值給了n
return 0;
}
int fanhui(void)
{
...
return a;//這裡的a必須是int型別
}
形式引數(形參)
形參的作用是傳遞資料到函式中。
對於主函式來說,形參是void(當然main的形參可以不是void,他有自己的形參,具體我也不清楚,所以在此不做討論)。
對於上文的starbar函式來說,形參是void,所以他不從主函式中傳遞引數。
使用形參
#include<stdio.h>
int xingcan(int m,double n,char b...int*d);//可以有一個,也可以傳遞多個
int main(void)
{
int i;
double j;
char c;
...
int*a;
...
n=int xingcan(i,j,c...a);//括號裡的變數的型別要與形參定義的型別一一對應。
return 0;
}
int xingcan(int m,double n,char b...int*d)
{
//在這個函式中m的值與原函式的i相等,n的值與原函式的j相等,以此類推。
//以後學了C語言的儲存類別,儲存管理就會知道
//在這個函式中對m,n,b...的操作不會影響主函式中i,j,b...的值。
//但指標例外,因為指標傳遞的是一個地址,在函式中操作地址所指向的值(即*d)
//就會改變主函式中傳送的*a的值,因為*a和*d指向同一個地址。
...
return a;//這裡的a必須是int型別
}