




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第C++與C語言的區別你知道嗎目錄1.結構體區別1.1.類型上不再需要struct關鍵字,直接用結構體名即可1.2.C++結構體中允許函數存在2.動態內存申請C語言的動態內存申請C++的動態申請3.內存池4.string類型總結
1.結構體區別
1.1.類型上不再需要struct關鍵字,直接用結構體名即可
#includeiostream
#includestring
usingnamespacestd;
structMM
charname[20];
intage;
intmain()
structMMgirl;
MMmm;//C++中不需要struct關鍵字
return0;
1.2.C++結構體中允許函數存在
在結構體中聲明,在結構體外實現,當然可以直接在結構體中實現結構體中函數訪問數據,是可以直接訪問學會調用,和數據成員方式時一樣的對象(結構體變量).成員對象指針-成員(*對象指針).成員C++在沒有寫構造函數和權限限定的時候,用法和C語言的用法是一樣
#includeiostream
#includestring
usingnamespacestd;
structMM
//屬性
//數據成員
charname[20];
intage;
//行為(方法)
//成員函數
voidprint()
coutname"\t"ageendl;
voidprintData();//在結構體中聲明,在外面實現
intgetAge()
returnage;
//結構體名限定,就是告訴別人這個函數來自哪里
voidMM::printData()
coutname"\t"ageendl;
//結構體中的變量必須要通過結構體變量(結構體指針)訪問
//c++結構體中的函數訪問屬性,可以直接訪問
intmain()
structMMgirl={"小芳",28};
MMmm={"小麗",24};//C++中不需要struct關鍵字
girl.print();
(mm)-printData();
MM*p=
p-printData();
p-getAge()=84;
p-printData();
p-age=1991;
p-printData();
return0;
2.動態內存申請
C語言的動態內存申請
malloc不帶初始化,calloc帶初始化,realloc重新申請free釋放
C++的動態申請
new(申請)和delete(釋放)單個變量內存申請數組的動態申請結構體內存申請
例子:單個變量內存申請和數組的動態申請
#includeiostream
#includestring
usingnamespacestd;
voidtestNoeMemory()
//申請不做初始化
int*pInt=newint;
*pInt=123;
cout*pIntendl;
char*pChar=newchar;
*pChar='A';
cout*pCharendl;
//申請內存做初始化()給單個數據做初始化
int*pNum=newint(134);
cout*pNumendl;
deletepInt;
pInt=nullptr;
deletepChar;
pChar=nullptr;
deletepNum;
pNum=nullptr;
voidtestArrayMerrmory()
//一維數組
//1、不帶初始化
//長度可以是h變量,只要值就可以
int*pInt=newint[3];//等效產生了intpInt[3]的數組
char*pstr=newchar[15];
strcpy_s(pstr,15,"Iloveyou");
coutpstrendl;
//帶初始化的一堆數據用{}
int*pNum=newint[3]{1,2,3};
for(inti=0;ii++)
coutpNum[i]"";
coutendl;
delete[]pNum;
char*str=newchar[20]{'A','B','\0'};
coutstrendl;
delete[]str;
str=nullptr;
str=newchar[20]{"Iloveyou"};
coutstrendl;
delete[]str;
str=nullptr;
delete[]pInt;//數組的指針不需要大小
//釋放只有兩種形式delete指針delete[]指針
//delete[][]p沒有這種寫法
pInt=nullptr;
intmain()
testNoeMemory();
return0;
例子:結構體內存申請
#includeiostream
#includestring
usingnamespacestd;
voidtestNoeMemory()
//申請不做初始化
int*pInt=newint;
*pInt=123;
cout*pIntendl;
char*pChar=newchar;
*pChar='A';
cout*pCharendl;
//申請內存做初始化()給單個數據做初始化
int*pNum=newint(134);
cout*pNumendl;
deletepInt;
pInt=nullptr;
deletepChar;
pChar=nullptr;
deletepNum;
pNum=nullptr;
voidtestArrayMerrmory()
//一維數組
//1、不帶初始化
//長度可以是h變量,只要值就可以
int*pInt=newint[3];//等效產生了intpInt[3]的數組
char*pstr=newchar[15];
strcpy_s(pstr,15,"Iloveyou");
coutpstrendl;
//帶初始化的一堆數據用{}
int*pNum=newint[3]{1,2,3};
for(inti=0;ii++)
coutpNum[i]"";
coutendl;
delete[]pNum;
char*str=newchar[20]{'A','B','\0'};
coutstrendl;
delete[]str;
str=nullptr;
str=newchar[20];
coutstrendl;
delete[]str;
str=nullptr;
delete[]pInt;//數組的指針不需要大小
//釋放只有兩種形式delete指針delete[]指針
//delete[][]p沒有這種寫法
pInt=nullptr;
structMM
char*name;
intage;
voidprintMM()
coutname"\t"ageendl;
voidtestStructMerrory()
//new一個對象
int*p=newint(123);
//結構體只能用大括號
MM*pMM=newMM;
//結構體中指針,要做二次申請,才能strcpy,或者賦值
pMM-name=newchar[20];
strcpy_s(pMM-name,20,"李四");
pMM-age=188;
pMM-printMM();
//申請的順序和釋放的順序是相反的
delete[]pMM-name;
deletepMM;
intmain()
//testNoeMemory();
testStructMerrory();
return0;
3.內存池
允許大家申請一段內存,共給程序使用,綜合管理內存
4.string類型
只需要知道有這種用法即可,不需要大家深究為什么,因為string本身是一個類,需要講完類的大部分知識,才能追究
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年德語TestDaF考試模擬試卷:德語閱讀理解技巧
- 畢業設計(論文)-起重機變幅液壓系統設計
- 積極正能量主題班會課件
- 重慶高校介紹
- 采樣安全課件
- 酒店管理課件課題
- 某地石油化工能源有限公司燃料儲配站可行性研究報告
- 2025年中國增材制造行業發展趨勢預測及投資戰略研究報告
- 綠色建筑設計標識評價申報自評估報告【模板】
- 2025年中國馬房用品行業市場發展前景及發展趨勢與投資戰略研究報告
- DB11T 2442-2025 學校食堂異物管控規范
- 2025年武漢市漢陽區社區干事崗位招聘考試筆試試題(含答案)
- 接警調度培訓課件
- 2025屆山東煙臺中考歷史真題試卷【含答案】
- 志愿者心理調適培訓(改)
- 個人信息保護與安全培訓
- 基于響應面法的工藝參數優化研究
- 2025年高考語文全國卷試題評析-教育部教育考試院
- 抗美援朝紅色文化課件教學
- 2025年04月河北張家口市事業單位公開招聘筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 調價合同協議書怎么寫
評論
0/150
提交評論