您好,登錄后才能下訂單哦!
今天小編給大家分享一下C語言函數如何使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
庫函數是C語言基礎庫為了方便程序員進行軟件開發而提供了一系列的函數,可以支持可移植性和提高程序的效率。
?? 注意:庫函數需要引頭文件。
例如:strlen函數的頭文件是<string.h>
自定義函數和庫函數一樣,有函數名、返回值類型和函數參數。但是不一樣的是,這些都是我們自己來設計,這給程序員一個很大的發揮空間
??注意:這個函數是在庫函數之外的,是不需要引頭文件的。
IO函數 : printf 、scanf 、getchar、putchar
字符串操作函數 :strcmp、strlen
字符操作函數:toupper
內存操作函數:memcpy、memcmp、memcet
時間/日期函數:time
數學函數:sqrt、pow
其他庫函數
函數的形參和實參分別占有不同的內存塊,對形參的修改不會影響實參
#include<stdio.h> void swap(int x, int y) { int z = 0; z = x; x = y; y = z; } int main() { int a = 10; int b = 20; printf("交換前=%d %d\n", a, b); swap(a, b); printf("交換后=%d %d\n", a, b); return 0; }
傳址調用是把函數外部創建變量的內存地址傳遞地函數參數的一種調用函數方式。
這種操作可以讓函數和函數外邊的變量建立起真正的聯系,也就是函數內部可以直接操作函數外部的變量。
定義指針變量,以通過訪問地址的方式來交換a和b的值。
函數定義部分的參數接收到的是變量a和變量b的地址,并通過地址來改變他們兩個的值。
#include<stdio.h> void swap(int * pa, int * pb ) { int z = 0; z = *pa; *pa = *pb; *pb = z; } int main() { int a = 10; int b = 20; printf("交換前=%d %d\n", a, b); swap(&a, &b); printf("交換后=%d %d\n", a, b); return 0; }
告訴編譯器有一個函數,參數是什么?返回類型什么?但是具體是不是存在無關緊要。
函數的聲明一般出現在函數的使用之前,要滿足先聲明后使用。
函數的聲明一般要放在頭文件中。
對函數聲明
#include<stdio.h> int main() { int a = 10; int b = 20; //函數的聲明 - 告知 int Add(int, int); int c = Add(a, b); printf("%d\n", c); return 0; } //函數的定義 int Add(int x, int y) { return x + y; }
函數的定義是指函數的具體實現,交代函數的功能實現 。
定義是一種更強有力的聲明
#include<stdio.h> int add(int a, int b)//函數定義 { return a + b;//返回a + b的值 } int main() { int a = 0; int b = 0; scanf("%d %d", &a, &b); int c = add(a, b);//函數調用 - 計算a + b的值 printf("%d\n", c); return 0; }
函數定義部分的參數是形參
函數調用部分的參數是實參
1.用函數求兩個整數的較大值
難易程度:?
#include<stdio.h> //求最大值 - 函數定義 - 傳參 int get_max(int score_one, int score_two)//函數形參 { //如果score_one大于score_two就返回一個score_one的值 //否則就返回score_two的值 //返回的值即為最大值 return score_one > score_two ? score_one : score_two; } int main() { int score_one = 0; int score_two = 0; scanf("%d %d", &score_one, &score_two); //求最大值函數 - 調用 - 并傳參 int max = get_max(score_one, score_two);//函數實參 printf("max=%d\n", max); return 0; }
2.用函數打印100~200之間的素數
難易程度:??
素數又叫質數,質數是指在大于1的自然數中,除了1和它本身以外,不能被其他自然數整除的數。
#include<stdio.h> int is_prime(int i) { int j = 0; for (j = 2; j < i; j++)//產生除了1和它本身的自然數 { //拿i試除除了1和它本身的自然數 if (i % j == 0)//整除進入語句 { return 0;//返回0 } } //i與所有除了1和它本身的自然數試除之后,返回的值就是素數 return 1;//返回1,就是返回素數的值 } int main() { int i = 0; int count = 0;//統計素數的個數 for (i = 100; i <= 200; i++)//產生100-200之間的數字 { if (is_prime(i) == 1)//如果返回值等于1就進入語句 { //打印的i就是素數 printf("%d ", i); count++;//每一次打印i,count++ } } printf("\ncount = %d\n", count); return 0; }
3.用函數打印1000~2000之間的閏年
?? 注意
能被4整除,并且不能被100整除
能被400整除
難易程度:??
#include<stdio.h> int is_leap_year(int n)//打印1000-2000素數的實現 { if (n % 4 == 0 && n % 100 != 0)//如果能被4整除,并且不能被100整除就進入語句 { return 1;//返回1就是返回素數 } else if (n % 400 == 0)//如果能被400整除就進入語句 { return 1;//返回1就是返回素數 } else { return 0;//返回0就不是素數 } } int main() { int i; int count = 0;//統計閏年的個數 for (i = 1000; i <= 2000; i++)//產生1000-2000之間的數 { if (is_leap_year(i) == 1)//如果返回的值等于1就進入語句 { printf("%d ", i);//打印i就是打印閏年 count++;//閏年的個數++ } } printf("\ncount = %d\n", count); return 0; }
以上就是“C語言函數如何使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。