C 自學筆記

2021-10-08 19:10:17 字數 2193 閱讀 8127

本次記錄函式提高,還請各位大佬批評指正!

在c++中,函式的形參列表中的形參是可以有預設值的。

語法:返回值型別 函式名 (引數 = 預設值)

注意事項:

1、如果某個位置有預設引數,那麼從這個位置之後,從左往右都必須有預設值。

2、如果函式的宣告有預設引數,那麼函式的實現就不能有預設引數。宣告和實現只能有乙個有預設引數。

#include

#include

#include

using

namespace std;

//函式的預設引數

intfunc1

(int a,

int b=20,

int c=30)

//如果某個位置有預設引數,那麼從這個位置之後,從左往右都必須有預設值

//int func2(int a, int b = 20, int c) //錯誤,b往後都得有預設值

////如果函式的宣告有預設引數,那麼函式的實現就不能有預設引數

//宣告和實現只能有乙個有預設引數

intfunc3

(int a,

int b)

;//函式的宣告

intfunc3

(int a =10,

int b =10)

//兩個都有預設引數會出現錯誤,重定義預設引數

intmain()

c++中函式的形參列表裡可以有佔位引數,用來做佔位,呼叫函式時必須填補該位置。

語法:返回值型別 函式名(只填資料型別)

現階段函式的佔位引數意義不大,但是後面會用到該技術。

#include

#include

#include

using

namespace std;

//函式佔位引數

void

func1

(int a,

int)

//佔位引數可以有預設引數

void

func2

(int a,

int=10)

intmain()

作用:函式名可以相同,提高復用性。

函式過載滿足條件:

1、同乙個作用域下;

2、函式名稱相同;

3、函式引數型別不同,或者個數不同,或者順序不同。

注意:函式的返回值不可以作為函式過載的條件

#include

#include

#include

using

namespace std;

//函式過載

void

func()

void

func

(int a)

void

func

(double a)

void

func

(int a,

double b)

void

func

(double a,

int b)

//函式的返回值(int/void)不可以作為過載條件

//int func(double a, int b) //錯誤

//int

main()

1、引用作為過載條件

2、函式過載碰到函式預設引數

#include

#include

#include

using

namespace std;

//函式過載注意事項

//引用作為過載條件

void

func

(int

&a)// int &a = 10; 不合法

void

func

(const

int& a)

// const int &a = 10; 合法

//函式過載碰到函式預設引數

void

func2

(int a,

int b=10)

void

func2

(int a)

intmain()

C 自學筆記

本次記錄結構體,還請各位大佬批評指正!結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別 整型 浮點型 字元型 布林型 即不同資料型別的集合所組成的乙個型別。建立學生資料型別,然後通過學生資料型別建立具體的學生。通過結構體建立變數的方式有三種 1 struct 結構體名 變數名 2 st...

C 自學筆記

本次記錄程式的記憶體分割槽模型,還請各位大佬批評指正!c 程式在執行時,將記憶體大方向劃分為4個區域 1 區 存放函式體的二進位制 有作業系統進行管理 寫的所有 放在該區域 2 全域性區 存放全域性變數和靜態變數以及常量 3 棧區 由編譯器自動分配釋放,存放函式的引數值,區域性變數 4 堆區 由程式...

C 自學筆記

筆記整理自 菜鳥c 教程 物件導向,區分大小寫 寫法 include 或include stdio.h iostream.h iostream的區別 static 區域性變數,檔案內全域性變數 extern 所有檔案可見變數 thread local 執行緒內變數 值 i j,實參i,形參j,i賦值...