1.庫函數(shù)
做網(wǎng)站、成都網(wǎng)站制作,成都做網(wǎng)站公司-創(chuàng)新互聯(lián)已向上1000+企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營銷等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。2.自定義函數(shù)
為什么會有庫函數(shù)?(1) 我們知道在我們學(xué)習(xí)C語言編程的時(shí)候,總是在一個(gè)代碼編寫完成之后迫不及待的想知道結(jié)果,想 把這個(gè)結(jié)果打印到我們的屏幕上看看。這個(gè)時(shí)候我們會頻繁的使用一個(gè)功能:將信息按照一定的格式打印到屏幕上(printf)。
(2) 在編程的過程中我們會頻繁的做一些字符串的拷貝工作(strcpy)。
(3)在編程時(shí),我們也計(jì)算,總是會計(jì)算n的k次方這樣的運(yùn)算(pow)。
學(xué)習(xí)庫函數(shù)的文檔: https://cplusplus.com/reference/
網(wǎng)站:https://en.cppreference.com(英文版)
https://zh.cppreference.com(中文版)
程序:msdn(離線工具)
在msdn中搜索庫函數(shù):
簡單的總結(jié),C語言常用的庫函數(shù)都有:IO函數(shù) (輸入輸出函數(shù))
字符串操作函數(shù) (strlen字符串長度等等)
字符操作函數(shù)(判斷字符大小寫等)
內(nèi)存操作函數(shù)
時(shí)間/日期函數(shù)
數(shù)學(xué)函數(shù)
其他庫函數(shù)
二、參照文檔學(xué)習(xí)庫函數(shù): (注意使用庫函數(shù)的時(shí)候要記得包含頭文件)1.Strcpy 把原指針指向的字符串拷貝到放到目標(biāo)地指針的空間里面.
#include#includeint main() {
char arr1[] = "abcdef";
char arr2[20] = { 0 };
strcpy(arr2, arr1);//strcpy(目標(biāo)空間必須夠大,所以arr2[]的長度要比arr1[]的長)把a(bǔ)rr1里面內(nèi)容拷貝放到arr2里面去
printf("%s\n", arr2);
}
注意:Strcpy是把源頭的數(shù)據(jù)放到目標(biāo)空間里面去,并且把\0也放進(jìn)去了(文檔里面也有體現(xiàn))
2.Memset:把ptr后面num個(gè)字節(jié)設(shè)置成value值
//把helloworld前五個(gè)字符改為x//把helloworld前五個(gè)字符改為x
int main() {
char arr1[] = "hello world";
memset(arr1, 'x', 5);
printf("%s", arr1);
}
三、自定義函數(shù)自定義函數(shù)和庫函數(shù)一樣,有函數(shù)名,返回值類型和函數(shù)參數(shù)。
但是不一樣的是這些都是我們自己來設(shè)計(jì)。這給程序員一個(gè)很大的發(fā)揮空間。
ret_type fun_name(para1, * )
{ statement;//語句項(xiàng)
}
//ret_type 返回類型
//fun_name 函數(shù)名
//para1 函數(shù)參數(shù)(可以沒有,有一個(gè),有多個(gè))
建議:先寫主函數(shù),---理清怎么用,反推函數(shù)怎么去寫
1.計(jì)算兩個(gè)整數(shù)的大值int get_max(int x, int y) {
if (x >y)
return x;
else
return y;
}
int main() {
int a = 0;
int b = 0;
scanf("%d %d",&a,&b);
關(guān)于函數(shù)的命名
Max()
GetMax() --獲取大值(可以每個(gè)單詞的第一個(gè)大寫便于區(qū)分)
get_max()---獲取大值(可以在中間加一個(gè)_隔開)
int m = get_max(a, b);
printf("%d\n", m);
return 0;
}
在調(diào)用函數(shù)的時(shí)候真實(shí)傳遞給函數(shù)的參數(shù)叫實(shí)參
2.打印hehevoid print() { //函數(shù)的返回類型:如果寫的函數(shù)有明確的返回類型要寫出來,不需要返回,就在類型的地方寫上void
printf("hehe");
}
int main() {
print();
return 0;
}
3.寫一個(gè)函數(shù)可以交換兩個(gè)整型變量的內(nèi)容
// 錯(cuò)誤示范void Swap(int x,int y) {
int tmp = x;
x = y;
y = tmp;
}
int main() {
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("交換前:a=%d b=%d\n", a, b);
Swap(a, b);
printf("交換后:a=%d b=%d\n", a, b);
return 0;
}
錯(cuò)誤原因:
a變量的值是3,b變量的值是5;a,b確實(shí)將3,5傳給了x,y;但是即使通過tmp交換了x和y的值,可x,y的地址與a,b的地址可不對應(yīng),所以最后輸出的時(shí)候根本不會影響a,b的值(因?yàn)閍,b的值一直都存放在a,b的地址里面沒有發(fā)生改變)
簡單說,因?yàn)樵谡{(diào)用的時(shí)候形參x,y都有自己的地址.
規(guī)范回答:
實(shí)參傳遞給形參的時(shí)候,形參是實(shí)參的一份臨時(shí)拷貝,對形參的修改不會影響實(shí)參的
解決思路:用pa把地址關(guān)聯(lián)起來
需要返回值就用具體的例如int,不需要返回值的就寫void
//正確示范void swap2(int* pa, int* pb) {
int tmp = *pa;//相當(dāng)于tmp=a;的操作
*pa=*pb; //相當(dāng)于a=b;的操作
*pb=tmp; //相當(dāng)于b=tmp;的操作
}
int main() {
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("交換前:a=%d b=%d\n", a, b);
Swap(&a, &b);
printf("交換后:a=%d b=%d\n", a, b);
return 0;
}
4.函數(shù)什么時(shí)候傳值,什么時(shí)候傳地址?當(dāng)Swap函數(shù)內(nèi)部想要改變它函數(shù)外部的變量的值的時(shí)候,需要傳地址;
不修改時(shí)只傳值即可.
5.實(shí)際參數(shù):真實(shí)傳給函數(shù)的參數(shù),叫實(shí)參。 實(shí)參可以是:常量、變量、表達(dá)式、函數(shù)等。 無論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須有確定的值,以便把這些值傳送給形參。
6.形式參數(shù) : (如果沒有調(diào)用函數(shù),就不會給形參分配空間)形式參數(shù)是指函數(shù)名后括號中的變量,因?yàn)樾问絽?shù)只有在函數(shù)被調(diào)用的過程中才實(shí)例化
所以叫形式參數(shù)。形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動(dòng)銷毀了。因此形式參數(shù)只在函數(shù)中有 效。
函數(shù)的調(diào)用--------傳值調(diào)用 傳址調(diào)用
7.補(bǔ)充另一種錯(cuò)誤示范分析:當(dāng)創(chuàng)建tmp把px,py里面的值互換,px---0x0012ff44,py---0x0012ff40,但是這并不影響a,b的值.
你學(xué)到了嗎小伙伴們😜😜
如果對你有幫助的話,希望小伙伴們點(diǎn)個(gè)贊和關(guān)注一下哦~💗💗💗我也會繼續(xù)更新學(xué)習(xí)的內(nèi)容,感謝友友們的支持!😚
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
文章標(biāo)題:C語言函數(shù)詳解(看完必會)-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article12/isedc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、電子商務(wù)、品牌網(wǎng)站設(shè)計(jì)、ChatGPT、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容