C 核心程式設計

2021-10-03 07:08:49 字數 3223 閱讀 5146

1、程式的記憶體模型(記憶體四區)

int

*func()

//形參也會放到棧區;

intmain()

int

*func()

void

func01()

delete

arr;

//釋放堆中的陣列的記憶體。引發異常

//列印陣列的值;

for(

int i =

0; i <

10; i++)}

intmain()

2、c++中的引用:引用的作用就是給變數起乙個別名;
int

main()

//1、值傳遞,形參不會修飾實參

void

myswap

(int a,

int b)

//2、位址傳遞,形參可以修飾實參

void

myswap01

(int

* a,

int* b)

//3、引用傳遞,形參可以修飾實參

void

myswap02

(int

&a,int

&b)int

main()

//引用作為函式的返回值:

//1、不要返回區域性變數的引用。

int&

test()

//2、如果函式的返回值為乙個引用,函式的返回值可以作為左值;

int&

test01()

intmain()

//當系統發現乙個引用時,將其轉換為:int * const ref,乙個指標常量

void

test

(int

& ref)

//在函式的引數中使用引用常量可以防止誤操作

void

test

(const

int& ref)

intmain()

3、函式的高階應用
//1、在函式某個位置已經有了預設引數,那麼從這個位置以後的引數(從左至右)都必須要有預設引數;

void

test

(int a,

int b=10,

int c=20)

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

//第二個int為佔位引數

void

test

(int a,

int)

//函式過載的注意事項:

//1、引用作為形參可以作為函式過載的條件

void

test

(int

& a)

void

test

(const

int& a)

//2、當預設引數碰上函式的過載容易出現函式的二義性的錯誤,所以以後盡量避免,下面兩個函式就會出現二義性的問題;

void

test01

(int a,

int b=10)

void

test01

(int a)

intmain()

4、類和物件
class

myclass

;struct mystruct

;int

main()

class

student

string getname()

void

setage

(int age)

_age = age;

}int

getage()

private

: string _name;

int _age;

};

5、類的分檔案編寫:將方法和字段放到乙個類的標頭檔案中,然後使用乙個包含這個標頭檔案的原始檔來實現方法;
//分檔案編寫以前的類,可以分為乙個point類的標頭檔案和乙個具體實現的原始檔就可以;

//class point

////

// int getx()

// void sety(int y)

// int gety()

//private:

// int _x;

// int _y;

////};

#pragma once

//防止重複宣告;

#include

using

namespace std;

//標頭檔案的宣告

class

point

;

#include

"point.h";

void point::

setx

(int x)

int point::

getx()

void point::

sety

(int y)

int point::

gety()

6、建構函式和析構函式:建構函式用來初始化類,析構函式用在物件銷毀時,構造和析構都沒有返回值,而且不用寫void;
class

test

//有參構造

test

(string name)

//拷貝構造,建構函式可以分為拷貝構造和普通構造;

test

(const test &t)

//析構函式,在類的銷毀時系統自動呼叫,如果沒有手動寫,將由系統自動生成,只不過實現為空

~test()

string getname()

private

: string _name;};

intmain()

7、深拷貝和淺拷貝:
在這裡插入**片

c 核心程式設計

四區 區 存放二進位制置零 全域性區 存放全域性變數和靜態變數以及常量 棧區 存放區域性變數以及參量,由編譯器自動釋放 堆區 由程式設計師釋放,或者作業系統收回 程式執行前 區 共享,可讀 全域性區new 資料型別 記得釋放記憶體 在堆區建立整型資料 new 返回的是該資料型別的指標 引用 給變數起...

C 核心程式設計

include using namespace std int func int main 引用 給變數起別名 因此對別名的值 原名的值 修改就是對原名的值 別名的值 修改 include using namespace std int main 引用的本質 指標常量 const 注 如果某個位置已...

C 核心程式設計(1)

學習資料 於 黑馬程式設計師.主要針對c 中的物件導向程式設計技術。1 記憶體分割槽模型 記憶體大方向劃分為4個區域 區 用於存放二進位制 有作業系統進行管理 全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配釋放,存放函式的引數值,區域性變數等 堆區 有程式設計師分配和釋放,若程式...