成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

C語言函數(shù)詳解(看完必會)-創(chuàng)新互聯(lián)

一、C語言中函數(shù)的分類:

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.打印hehe
void 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)

網(wǎng)站托管運(yùn)營
华容县| 六枝特区| 拉孜县| 彩票| 朝阳区| 泗水县| 安龙县| 土默特右旗| 行唐县| 湖州市| 镇雄县| 客服| 长治市| 天津市| 江阴市| 临夏县| 河津市| 嘉义县| 新巴尔虎左旗| 镶黄旗| 茌平县| 江都市| 长子县| 开阳县| 盱眙县| 嘉义县| 宁都县| 景东| 新泰市| 洱源县| 舞阳县| 延庆县| 阜阳市| 广元市| 万年县| 和林格尔县| 苍梧县| 南岸区| 台中市| 辽宁省| 玉龙|