C語言有關函式淺析
大家好,我是爽爽子,小菜雞一名,今天分享一下函式希望對大家有幫助。
分析思路
1.定義
2.格式
3.函式怎麼使用
首先我還是把函式分了幾個板塊
1.函式的定義
2.實參和形參的區別
3.返回值
4.宣告+呼叫
5.函式的巢狀+遞迴
1.函式的定義
int str (int n)
{
return sum;//注意sum的型別和形參n是一種型別(否則返回值失效)可以找pta的程式碼自己試一試
}
2.實參和形參的區別
大家對這一塊分不太清
實參:實參可以是常量、變數、表示式、函式等,無論實參是何種型別的資料,在進行函式呼叫時,它們都必須有確定的值,以便把這些值傳送給形參,所以應該提前用賦值、輸入等辦法使實參獲得確定值。(就是主函式有的值)
形參:接受實參的值,然後在函式中執行
注意的是:形參實參要注意同一種性質,並且只能是實參把數值給形參(數值傳遞成功實參和形參就沒有半點關係)
上一組程式碼
實參和形參一樣
#include<stdio.h>
int str(int n);
int main()
{
int n;
scanf("%d",&n);
int f;
f = str(n);
printf("%d",f);
}
int str(int n)
{
int i,s = 1;
int sum = 0;
for( i = 1; i <= n;i++)
{
s = s * i;
sum = sum + s;
}
return sum;
}
實參和形參不相等`
#include<stdio.h>
int str(int n);
int main()
{
int a;
scanf("%d",&a);
int f;
f = str(a);
printf("%d",f);
}
int str(int n)
{
int i,s = 1;
int sum = 0;
for( i = 1; i <= n;i++)
{
s = s * i;
sum = sum + s;
}
return sum;
}
經過驗證實參形參相同沒有什麼影響!!!
過程分析:先對a進行賦值,a為實參,然後a的值賦值給形參n,形參在通過函式的薰陶,return出一個值,然後這個值就是主函式的f(也可以說a起到提醒的作用,提醒n你要過來複制我了,n相當於傳遞的作用,然後經過運算得出f(x)的值)
3.返回值
返回值在板塊二說的挺明白了,現在就是區分有的函式有返回值,有的函式沒有
#include <stdio.h>
int a()
{
printf("function a called\n");
}
int b()
{
// printf("function b called\n");
}
int c()
{
//int c = 1 + 2;
}
int main()
{
int a1 = a();
int b1 = b();
int c1 = c();
printf("a1=%d, b1=%d, c1=%d\n", a1, b1, c1);
}
不同編譯器出現的情況可能不同,由於歷史原因這個玩意解釋不了,我們就姑且記住,函式可以沒有返回值用void main就可以(不過大家可以試一試這個程式碼我用CB最後的值不是0就是1)
4.宣告+呼叫
宣告格式:
呼叫格式:
例題在下一板塊
5.函式的巢狀+遞迴
求1!+2!+…+9!+10!
#include <stdio.h>
//求階乘
long factorial(int n){
int i;
long result=1;
for(i=1; i<=n; i++){
result *= i;
}
return result;
}
// 求累加的和
long sum(long n){
int i;
long result = 0;
for(i=1; i<=n; i++){
//在定義過程中出現巢狀呼叫
result += factorial(i);
}
return result;
}
int main(){
printf("1!+2!+...+9!+10! = %ld\n", sum(10)); //在呼叫過程中出現巢狀呼叫
return 0;
}
嘿嘿一些小小知識點,其實不會的還是大家對於函式理解,我是把它當成數學題來解決
嗚嗚嗚,爽爽子已經盡力了,如果還是看不明白。。。。爬爬爬
相關文章
- C語言巨集和函式淺析C語言函式
- C語言的函式C語言函式
- C語言 execve()函式C語言函式
- C語言常用函式C語言函式
- C語言相關的基礎字串函式C語言字串函式
- C語言 函式指標C語言函式指標
- C語言基礎函式C語言函式
- 08. C語言函式C語言函式
- C語言函式呼叫棧C語言函式
- 【C語言】常用的字串函式及相關函式的自我實現C語言字串函式
- C語言qsort函式的使用C語言函式
- C語言解讀assert函式C語言函式
- C語言庫函式及示例C語言函式
- C語言函式sscanf()的用法C語言函式
- C#語言函式遞迴C#函式遞迴
- 淺析stl仿函式函式
- 淺談C語言中函式的使用C語言函式
- C語言函式指標與回撥用函式C語言函式指標
- c語言快速排序(庫函式使用)C語言排序函式
- C 語言回撥函式詳解函式
- c語言學習筆記===函式C語言筆記函式
- Julia1.0程式語言淺析
- C 語言實現泛型 swap 函式泛型函式
- c語言函式指標的定義C語言函式指標
- C語言函式指標與回撥函式使用方法C語言函式指標
- C語言 將函式(有參、無參)作為引數傳遞C語言函式
- c語言與字串相關的庫函式的模擬實現C語言字串函式
- C語言關於指標,gets()和gets_s()函式的理解C語言指標函式
- Go 語言函式Go函式
- c語言是如何處理函式呼叫的?C語言函式
- 【C語言】函式的概念和函式的呼叫(引數傳遞)C語言函式
- c/c++語言函式 stat, fstat, lstat, fstatat - get file statusC++函式
- C語言_輸入輸出函式_PAGE5C語言函式
- 包含min函式的棧(劍指offer)---C語言函式C語言
- c語言獲取陣列長度的函式C語言陣列函式
- C語言-字串函式的實現(五)之strstrC語言字串函式
- C語言-字串函式的實現(一)之strlenC語言字串函式
- Go 語言 -make函式Go函式