淺談C語言——正式步入C語言學習(4)

2020-08-11 22:41:22

函數

無論多晚,堅持上新!
此內容較爲簡單,閱讀瀏覽約爲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(表達式);

常用:

  • exit(0);
  • exit(EXIT_SUCCESS); //正常終止
  • exit(EXIT_FAILURE);//異常終止

看到這裏相信各位都有學習到新知識吧,暫時學不會不要緊,但是一定要認真學!一定要每天都有收穫啊!!!我相信,只要朝着目標方向奔跑,一定會成功的!
加油!!!

不要忘記點個贊再走哦,希望關注一下呀!!!

我會繼續更新我的新文章,請各位看官繼續支援。