日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

CPP函數(shù)基礎知識詳解

 昵稱32937624 2019-01-19

CPP函數(shù)基礎知識詳解

什么是函數(shù)?

函數(shù)是能夠?qū)崿F(xiàn)特定功能的程序模塊,他可以是只有一條語句的簡單函數(shù),也可以是包含許多子函數(shù)的復雜函數(shù)。

函數(shù)的分類

1.簡單函數(shù)和復雜函數(shù)

2.庫函數(shù)和自定義函數(shù)

3.功能函數(shù):字符函數(shù)、日期函數(shù)、數(shù)學函數(shù)、圖形函數(shù)、內(nèi)存函數(shù)等。

注:

一個程序可以只有一個主函數(shù),但是不可以沒有函數(shù)。

CPP函數(shù)基礎知識詳解

函數(shù)的定義

類型標識符 函數(shù)名 (形參列表) {變量的聲明語句}

注:

  • 類型標識符:

    標識函數(shù)的返回值類型:整型、字符型、指針型、對象的數(shù)據(jù)類型、空類型等
  • 形參列表:

    函數(shù)中所需要輸入的參數(shù)列表
  • 形參列表可以為空,即定義無參函數(shù)。
  • 函數(shù)后面的大括號表示函數(shù)體,在函數(shù)體內(nèi)進行變量聲明和實現(xiàn)語句的添加。

實例:

int GetMax(int a , int b){int a; //變量的聲明int b;if a>b //函數(shù)功能語句的實現(xiàn)return a;elsereturn b;}

CPP函數(shù)基礎知識詳解

函數(shù)的聲明

int GetMax(int a ,int b);

函數(shù)聲明被稱為函數(shù)原型,函數(shù)聲明時可以省略變量名。

實例: 函數(shù)的使用

#include <iostream>using namespace std;int GetMax(int ,int ); //函數(shù)聲明int GetMax(int a ,int b) //函數(shù)的實現(xiàn){if (a>b) //函數(shù)功能語句的實現(xiàn)return a;elsereturn b;}void main(){ cout << GetMax(5, 9) << endl; //函數(shù)的調(diào)用 --實參system('pause');} 

注:

函數(shù)的聲明,函數(shù)的實現(xiàn),變量的聲明,變量的使用,函數(shù)的調(diào)用。

結(jié)果為:

CPP函數(shù)基礎知識詳解

函數(shù)參數(shù)和返回值

函數(shù)參數(shù): 函數(shù)的輸入(input)

函數(shù)返回值:函數(shù)的輸出(output)

返回值要求:

  1. 函數(shù)返回值的類型和函數(shù)定義中函數(shù)的類型標識符應保持一致。如果兩者不一致,則以函數(shù)類型為準,自動進行類型轉(zhuǎn)換。
  2. 函數(shù)類值若為整型,在函數(shù)定義時可以省去類型標識符。
  3. 在函數(shù)中允許有多個return語句,單每次調(diào)用只能有一個被執(zhí)行。
  4. 不反悔函數(shù)值的函數(shù),可定義為空類型void。
  5. 類型為void的函數(shù)不能進行賦值運算即值傳遞。
  6. 為了降低程序出錯的幾率,凡是不要求返回值的函數(shù)都定義為空類型。

CPP函數(shù)基礎知識詳解

空函數(shù)

沒有參數(shù)和返回值,函數(shù)的作用域也為空的函數(shù)即空函數(shù)。

void setname(){}

存在的意義:預定義功能

在程序設計中往往根據(jù)需要確定若干模塊,分別由一些函數(shù)來實現(xiàn)。因此就需要先定義一個空函數(shù)占位,然后在開發(fā)。是程序設計的結(jié)構(gòu)清除,可讀性好,以后擴充新功能方便,且對程序結(jié)構(gòu)影響不大。形參、實參和無參

形參:a,b ---輸入變量 --函數(shù)調(diào)用時賦值。

int GetMax(int a ,int b ){int a; //變量的聲明int b;if a>b //函數(shù)功能語句的實現(xiàn)return a;elsereturn b;}

CPP函數(shù)基礎知識詳解

實參:函數(shù)調(diào)用時賦值即實參。

void main(){ GetMax(5,9); //函數(shù)的調(diào)用 --實參}

注:

  1. 形參和實參個數(shù)相等,類型一致。
  2. 實參與形參按順序?qū)瘮?shù)被調(diào)用時會一一傳數(shù)據(jù)。

  1. 內(nèi)存方面:形參定義,不占內(nèi)存,函數(shù)調(diào)用時,給形參分配內(nèi)存單元,調(diào)用結(jié)束即釋放。(函數(shù)調(diào)用--分配空間--參數(shù)值傳遞--釋放空間)
  2. 值方面:實參是確定的值。 形參接收實參的值傳遞或者地址傳遞。
  3. 傳遞方面:實參與形參之間單向傳遞,只能由實參傳遞給形參。
  4. C++支持引用型變量,引用型變量則沒有值傳遞的過程。

默認參數(shù)

在調(diào)用有參函數(shù)時,如需經(jīng)常傳遞同一個值到調(diào)用函數(shù),在定義時,可以為參數(shù)設置一個默認值,這樣在調(diào)用函數(shù)時就可以省略一些參數(shù),此時程序?qū)⒉扇∧J值作為函數(shù)的實際參數(shù)。

實例:定義參數(shù)默認值

#include<iostream>using namespace std;void WelYou(const char* wy='劍云鋒謝謝你們的支持,讓我們共同成長!'){cout<<wy<<endl; //輸出默認值}void main(){ WelYou(); //調(diào)用函數(shù)(默認參數(shù)作實參) WelYou('劍云鋒祝愿大家新年快樂!'); //直接傳遞實參。 system('pause');}

注:

默認參數(shù)不能出現(xiàn)在非默認參數(shù)的左方。否則會導致編譯錯誤。

結(jié)果為:

CPP函數(shù)基礎知識詳解

可變參數(shù)

可變參數(shù):“...”表示可變。例如庫函數(shù)printf函數(shù)。

_CRTIMP int_cdecl printf(const char* , ...);printf('%d\n','劍云鋒'); //輸出一項信息printf('%s-%s-%s\n', '劍云鋒','歡迎你',',謝謝!'); //輸出多項信息

注:

可變參數(shù)的函數(shù),在定義函數(shù)時需要一一讀取用戶傳遞的實際參數(shù)??梢允褂胿a_list 類型和va_start,va_arg,va_end 3個宏 讀取傳遞到函數(shù)的參數(shù)值。使用可變參數(shù),需引用stdarg.h頭文件。

CPP函數(shù)基礎知識詳解

實例:可變參數(shù)的定義和調(diào)用。

#include<iostream>#include<stdarg.h> //包含宏頭文件using namespace std;void WelYou(int num ,...) //定義可變參數(shù)函數(shù){va_list arguments; //定義va_list類型變量va_start(arguments,num);while(num--){char* wy =va_arg(arguments,char*); //獲取字符串數(shù)據(jù)int i=va_arg(arguments,int ); //獲取整型數(shù)據(jù)cout<<wy<<endl; //輸出字符串cout<<i<<endl; //輸出整數(shù)}va_end(arguments);}void main(){	WelYou(2, '劍云鋒',2018,'劍云鋒', 2019);//調(diào)用WelYou函數(shù)system('pause');}

結(jié)果為:

CPP函數(shù)基礎知識詳解

函數(shù)變量作用域

變量位置分類:全局變量和局部變量。

全局變量:在函數(shù)體外定義的變量稱為全局變量。

局部變量:在函數(shù)體內(nèi)定義的變量稱為局部變量。

實例:

#include <iostream>using namespace std;int total; //定義全局變量int GetCount(); //聲明函數(shù)void main(){int total=529; //局部變量cout<<total<<endl;cout<<GetCount()<<endl;system('pause');}int GetCount(){total=925; //給全局變量賦值return total;}

注:

  • 全局變量使用一定要慎重,能不用則不用。
  • 變量都有它的生命周期。
  • 全局變量在程序開始時創(chuàng)建并分配空間,在程序結(jié)束時釋放內(nèi)存并銷毀;
  • 局部變量是在函數(shù)調(diào)用時創(chuàng)建,并在棧中分配內(nèi)存,在函數(shù)調(diào)用結(jié)束后銷毀并釋放。

結(jié)果為:

CPP函數(shù)基礎知識詳解

本文部分內(nèi)容參考至教材,如有錯誤,敬請指正,如有侵權(quán),請聯(lián)系修改,謝謝。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多