bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

C語言函數詳解(看完必會)-創新互聯

一、C語言中函數的分類:

1.庫函數

做網站、成都網站制作,成都做網站公司-創新互聯已向上1000+企業提供了,網站設計,網站制作,網絡營銷等服務!設計與技術結合,多年網站推廣經驗,合理的價格為您打造企業品質網站。

2.自定義函數

為什么會有庫函數?

(1) 我們知道在我們學習C語言編程的時候,總是在一個代碼編寫完成之后迫不及待的想知道結果,想 把這個結果打印到我們的屏幕上看看。這個時候我們會頻繁的使用一個功能:將信息按照一定的格式打印到屏幕上(printf)。

(2) 在編程的過程中我們會頻繁的做一些字符串的拷貝工作(strcpy)。

(3)在編程時,我們也計算,總是會計算n的k次方這樣的運算(pow)。

學習庫函數的文檔: https://cplusplus.com/reference/

網站:https://en.cppreference.com(英文版)

https://zh.cppreference.com(中文版)

程序:msdn(離線工具)

在msdn中搜索庫函數:

簡單的總結,C語言常用的庫函數都有:

IO函數 (輸入輸出函數)

字符串操作函數 (strlen字符串長度等等)

字符操作函數(判斷字符大小寫等)

內存操作函數

時間/日期函數

數學函數

其他庫函數

二、參照文檔學習庫函數: (注意使用庫函數的時候要記得包含頭文件)

1.Strcpy 把原指針指向的字符串拷貝到放到目標地指針的空間里面.

#include#includeint main() {
    char arr1[] = "abcdef";
    char arr2[20] = { 0 };
    strcpy(arr2, arr1);//strcpy(目標空間必須夠大,所以arr2[]的長度要比arr1[]的長)把arr1里面內容拷貝放到arr2里面去
    printf("%s\n", arr2);
}

注意:Strcpy是把源頭的數據放到目標空間里面去,并且把\0也放進去了(文檔里面也有體現)

2.Memset:把ptr后面num個字節設置成value值

//把helloworld前五個字符改為x
//把helloworld前五個字符改為x
int main() {
    char arr1[] = "hello world";
    memset(arr1, 'x', 5);
    printf("%s", arr1);
}

三、自定義函數

自定義函數和庫函數一樣,有函數名,返回值類型和函數參數。

但是不一樣的是這些都是我們自己來設計。這給程序員一個很大的發揮空間。

ret_type fun_name(para1, * )
 { statement;//語句項
 } 
//ret_type 返回類型
//fun_name 函數名 
//para1    函數參數(可以沒有,有一個,有多個)

建議:先寫主函數,---理清怎么用,反推函數怎么去寫

1.計算兩個整數的大值
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);
    關于函數的命名               
    Max()
    GetMax() --獲取大值(可以每個單詞的第一個大寫便于區分)
    get_max()---獲取大值(可以在中間加一個_隔開)
    int m = get_max(a, b);
    printf("%d\n", m);
    return 0;
}

在調用函數的時候真實傳遞給函數的參數叫實參

2.打印hehe
void print() {  //函數的返回類型:如果寫的函數有明確的返回類型要寫出來,不需要返回,就在類型的地方寫上void
    printf("hehe");
}
int main() {
    print();
    return 0;
}
3.寫一個函數可以交換兩個整型變量的內容 // 錯誤示范
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;
}

錯誤原因:

a變量的值是3,b變量的值是5;a,b確實將3,5傳給了x,y;但是即使通過tmp交換了x和y的值,可x,y的地址與a,b的地址可不對應,所以最后輸出的時候根本不會影響a,b的值(因為a,b的值一直都存放在a,b的地址里面沒有發生改變)

簡單說,因為在調用的時候形參x,y都有自己的地址.

規范回答:

實參傳遞給形參的時候,形參是實參的一份臨時拷貝,對形參的修改不會影響實參的

解決思路:用pa把地址關聯起來

需要返回值就用具體的例如int,不需要返回值的就寫void

//正確示范
void swap2(int* pa, int* pb) {
    int tmp = *pa;//相當于tmp=a;的操作
    *pa=*pb;          //相當于a=b;的操作
    *pb=tmp;          //相當于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.函數什么時候傳值,什么時候傳地址?

當Swap函數內部想要改變它函數外部的變量的值的時候,需要傳地址;

不修改時只傳值即可.

5.實際參數:

真實傳給函數的參數,叫實參。 實參可以是:常量、變量、表達式、函數等。 無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。

6.形式參數 : (如果沒有調用函數,就不會給形參分配空間)

形式參數是指函數名后括號中的變量,因為形式參數只有在函數被調用的過程中才實例化

所以叫形式參數。形式參數當函數調用完成之后就自動銷毀了。因此形式參數只在函數中有 效。

函數的調用--------傳值調用 傳址調用

7.補充另一種錯誤示范分析:

當創建tmp把px,py里面的值互換,px---0x0012ff44,py---0x0012ff40,但是這并不影響a,b的值.

你學到了嗎小伙伴們😜😜

如果對你有幫助的話,希望小伙伴們點個贊和關注一下哦~💗💗💗我也會繼續更新學習的內容,感謝友友們的支持!😚

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

文章標題:C語言函數詳解(看完必會)-創新互聯
路徑分享:http://vcdvsql.cn/article12/isedc.html

成都網站建設公司_創新互聯,為您提供移動網站建設標簽優化電子商務品牌網站設計ChatGPT用戶體驗

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營