無論多晚,堅持上新!
此內容較爲簡單,閱讀瀏覽約爲8分鐘!
本文章參考《C語言程式設計現代方法(第二版)》以及自己總結,不正確或者不適當的地方歡迎批評指正,主要以學習總結以及應用爲主,在深入學習的同時也會及時更正不適合的地方。
「函數」這個術語來自於數學,但是C語言函數不和數學所說的函數相同,函數是C語言的構建塊,每個函數本質是一個自帶宣告和語句的小程式,函數可以被複用:一個函數最初可能是某個程式的一部分,但可以將其用於其他程式中。
當函數開始在main函數中執行時,當執行到呼叫的函數時,會返回到呼叫函數執行的地方,在呼叫函數中進行計算並返回到一個結果,即經常用return進行結果返回,並生成所需要的結果。
看一下範例:
/*呼叫形式輸出平均值*/
#include<stdio.h>
double average(double a,double b)//double 表示 average函數的返回型別
{
return (a+b)/2;//該函數體主要是進行計算,此函數題被呼叫
}
int main()
{
double x,y,z;
printf("Please enter three Numbers: ");
scanf("%lf%lf%lf",&x,&y,&z);
printf("input %g and %g :%g\n",x,y,average(x,y));//%g可以自動選擇輸出型別,對於浮點型別的,選擇認爲合適的進行輸出
printf("input %g and %g : %g\n",x,z,average(x,z));
printf("input %g and %g : %g\n",y,z,average(y,z));
return 0;
}
說明:首先開始執行時在主函數中執行,當執行到average函數時,會自動返回到呼叫函數中,會發現double average(double a,double b)這就相當於一個所謂的「結果」,其結果是由return (a+b)/2運算而來的,注意的是a和b的值是由接下來main函數的定義的數值複製而來的。
再練習一下:
判定奇數並且輸出:
/*Determine odd Numbers and output*/
#include<stdio.h>
int odd_Numbers(int i,int j)
{
i=0;
while(i<j)
{
i++;
if(i%2==0)
continue;
printf("%4d",i);
}
}
int main()
{
int a,b;
printf("Determine odd Numbers and output: \n");
scanf("%d",&b);
odd_Numbers(a,b);
return 0;
}
在C語言中,可以在呼叫前宣告每個函數,函數宣告使得編譯器可以先對函數進行概要瀏覽,而函數的完整定義以後再給出。
函數宣告有什麼好處呢?
當編譯器剛開始執行源程式時,會發現做執行的函數不知道到底是什麼意思, 但是在C語言中是不會報錯的,就相當於C語言編譯程式給自動加了一個隱式宣告, 爲了避免出現呼叫錯誤呢,於是在執行時加了一個函數宣告,告訴它, 接下來可能會執行一個函數呼叫,從而大大減少出現報錯的情況。
下面 下麪看一個和前面類似的程式:
/*呼叫形式輸出平均值*/
#include<stdio.h>
double average(double a,double b);//函數宣告
int main()
{
double x,y,z;
printf("Please enter three Numbers: ");
scanf("%lf%lf%lf",&x,&y,&z);
printf("input %g and %g :%g\n",x,y,average(x,y));//%g可以自動選擇輸出型別,對於浮點型別的,選擇認爲合適的進行輸出
printf("input %g and %g : %g\n",x,z,average(x,z));
printf("input %g and %g : %g\n",y,z,average(y,z));
return 0;
}
double average(double a,double b)//double 表示 average函數的返回型別
{
return (a+b)/2;//該函數體主要是進行計算,此函數題被呼叫
}
1、return 語句
非void函數必須使用return語句來指定將要返回的值。
如:return n >= 0 ? n : 0 ;
2、程式終止
(1)exit函數
此函數與return語句關係緊密,在main函數中的語句
return 表達式;
等價於
exit(表達式);
常用:
看到這裏相信各位都有學習到新知識吧,暫時學不會不要緊,但是一定要認真學!一定要每天都有收穫啊!!!我相信,只要朝着目標方向奔跑,一定會成功的!
加油!!!
不要忘記點個贊再走哦,希望關注一下呀!!!
我會繼續更新我的新文章,請各位看官繼續支援。