第一章-复习C
第一章-復(fù)習(xí)C
文章目錄
- 第一章-復(fù)習(xí)C
- 1、復(fù)習(xí)指針的應(yīng)用
- 內(nèi)存分配和回收
- 2、結(jié)構(gòu)體
- 3、OOP(面向?qū)ο?
- Tips
1、復(fù)習(xí)指針的應(yīng)用
int* p=12; p=p+1;此時(shí)p的地址是16(int類型占4個(gè)字長),p的值即是地址16所對應(yīng)的值
int* p; int a=10; p=&a; //p指向a,其值為10內(nèi)存分配和回收
- C語言
- C++
C語言通過 malloc 和 free函數(shù)分配和回收內(nèi)存
C++通過 new 和 delete 關(guān)鍵字為指針分配和回收內(nèi)存
分配的內(nèi)存要及時(shí)回收,否則容易造成內(nèi)存泄漏
delete只是回收了內(nèi)存,并沒有刪除指針,指針通過內(nèi)存的再分配仍然可以使用
2、結(jié)構(gòu)體
結(jié)構(gòu)體定義時(shí)在其后加上冒號即可繼承別的結(jié)構(gòu)體
struct A {int a,b;int add(){return a+b;} }; struct B:A //默認(rèn)繼承,等級為public {int c; }; struct C:private A //私有繼承,等級是private {int c; };struct的默認(rèn)繼承等級為public,class的默認(rèn)繼承等級為private
3、OOP(面向?qū)ο?
OOP的主要特點(diǎn):
- 抽象
- 抽象就是對具體對象進(jìn)行概括,抽出這一類對象的公有性質(zhì)并加以描述的過程。
- 封裝
- 封裝就是將抽象出的數(shù)據(jù)成員,函數(shù)成員相結(jié)合,將它們視為一個(gè)整體。
- 繼承
- 允許程序員在保持原有類的基礎(chǔ)上,進(jìn)行更具體的說明。
- 多態(tài)
- 接口的多種不同的功能實(shí)現(xiàn)方式。
Tips
- 常量
- 在C里面使用宏定義#define
- 在C++里不推薦#define,而是使用const來定義常量
- bool
- bool 類型對應(yīng)int型的數(shù)值只有0和非0兩種
- true為非0,false為0
- 取模運(yùn)算
- C/C++的取模運(yùn)算,除法運(yùn)算向下取整
- 17%10 =7
- -17%10 = (-17)-(17/10)*10= (-17)-(-1)*10= (-17)+10= -7
- 17%-10 = 17-(-17/-10)(-10)= 17-(-1-10)= 7
- -17%-10 = (-17)-(-17/-10)(-10)=(-17)-(1-10)= -7
- 可以簡單記憶為,將兩數(shù)視為正數(shù)進(jìn)行取模,最終符號取決于第一個(gè)數(shù)
- 內(nèi)聯(lián)函數(shù)
- 用 inline 定義
- 編譯時(shí)會(huì)將其插入到函數(shù)使用處,可以提高運(yùn)行速度和效率,但是會(huì)增加空間開銷
- 一般用于內(nèi)容簡單又大量使用的函數(shù)
- 帶默認(rèn)形參值的函數(shù)
- 函數(shù)在定義時(shí)可以預(yù)先聲明默認(rèn)的形參值
- 調(diào)用時(shí)如果給出實(shí)參,則用實(shí)參初始化形參
- 如果沒有給出實(shí)參,則采用預(yù)先聲明的默認(rèn)形參值
- 函數(shù)重載
- 兩個(gè)以上的函數(shù),具有相同的函數(shù)名,但是形參個(gè)數(shù)或者類型不同,編譯器會(huì)根據(jù)實(shí)參和形參的類型和個(gè)數(shù)的最佳匹配,自動(dòng)確定調(diào)用哪一個(gè)函數(shù)
總結(jié)
- 上一篇: 操作系统实验4—磁盘调度
- 下一篇: 第二章-类和对象