




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第C++與C語言的區(qū)別你知道嗎目錄1.結構體區(qū)別1.1.類型上不再需要struct關鍵字,直接用結構體名即可1.2.C++結構體中允許函數(shù)存在2.動態(tài)內存申請C語言的動態(tài)內存申請C++的動態(tài)申請3.內存池4.string類型總結
1.結構體區(qū)別
1.1.類型上不再需要struct關鍵字,直接用結構體名即可
#includeiostream
#includestring
usingnamespacestd;
structMM
charname[20];
intage;
intmain()
structMMgirl;
MMmm;//C++中不需要struct關鍵字
return0;
1.2.C++結構體中允許函數(shù)存在
在結構體中聲明,在結構體外實現(xiàn),當然可以直接在結構體中實現(xiàn)結構體中函數(shù)訪問數(shù)據(jù),是可以直接訪問學會調用,和數(shù)據(jù)成員方式時一樣的對象(結構體變量).成員對象指針-成員(*對象指針).成員C++在沒有寫構造函數(shù)和權限限定的時候,用法和C語言的用法是一樣
#includeiostream
#includestring
usingnamespacestd;
structMM
//屬性
//數(shù)據(jù)成員
charname[20];
intage;
//行為(方法)
//成員函數(shù)
voidprint()
coutname"\t"ageendl;
voidprintData();//在結構體中聲明,在外面實現(xiàn)
intgetAge()
returnage;
//結構體名限定,就是告訴別人這個函數(shù)來自哪里
voidMM::printData()
coutname"\t"ageendl;
//結構體中的變量必須要通過結構體變量(結構體指針)訪問
//c++結構體中的函數(shù)訪問屬性,可以直接訪問
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.動態(tài)內存申請
C語言的動態(tài)內存申請
malloc不帶初始化,calloc帶初始化,realloc重新申請free釋放
C++的動態(tài)申請
new(申請)和delete(釋放)單個變量內存申請數(shù)組的動態(tài)申請結構體內存申請
例子:單個變量內存申請和數(shù)組的動態(tài)申請
#includeiostream
#includestring
usingnamespacestd;
voidtestNoeMemory()
//申請不做初始化
int*pInt=newint;
*pInt=123;
cout*pIntendl;
char*pChar=newchar;
*pChar='A';
cout*pCharendl;
//申請內存做初始化()給單個數(shù)據(jù)做初始化
int*pNum=newint(134);
cout*pNumendl;
deletepInt;
pInt=nullptr;
deletepChar;
pChar=nullptr;
deletepNum;
pNum=nullptr;
voidtestArrayMerrmory()
//一維數(shù)組
//1、不帶初始化
//長度可以是h變量,只要值就可以
int*pInt=newint[3];//等效產(chǎn)生了intpInt[3]的數(shù)組
char*pstr=newchar[15];
strcpy_s(pstr,15,"Iloveyou");
coutpstrendl;
//帶初始化的一堆數(shù)據(jù)用{}
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;//數(shù)組的指針不需要大小
//釋放只有兩種形式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;
//申請內存做初始化()給單個數(shù)據(jù)做初始化
int*pNum=newint(134);
cout*pNumendl;
deletepInt;
pInt=nullptr;
deletepChar;
pChar=nullptr;
deletepNum;
pNum=nullptr;
voidtestArrayMerrmory()
//一維數(shù)組
//1、不帶初始化
//長度可以是h變量,只要值就可以
int*pInt=newint[3];//等效產(chǎn)生了intpInt[3]的數(shù)組
char*pstr=newchar[15];
strcpy_s(pstr,15,"Iloveyou");
coutpstrendl;
//帶初始化的一堆數(shù)據(jù)用{}
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;//數(shù)組的指針不需要大小
//釋放只有兩種形式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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030國內熱泵空調行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 2025至2030光刻膠行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030管道運輸產(chǎn)業(yè)市場深度分析及發(fā)展趨勢與投資戰(zhàn)略報告
- 性與健康科學認知
- 面對挫折班會課件教學
- 2025浙江麗水經(jīng)濟技術開發(fā)區(qū)國有企業(yè)招聘18名筆試參考題庫附帶答案詳解版
- 2025中國能源建設集團國際工程有限公司二級管理師三級管理師招聘18人筆試參考題庫附帶答案詳解版
- 備戰(zhàn)高一高二高三高考歷史搶分秘籍-秘籍07搶分專項周年熱點集錦+考前預測+專練30題(答案解析版)
- 2025福建平潭綜合實驗區(qū)實業(yè)發(fā)展集團有限公司(第一批)招聘17人筆試參考題庫附帶答案詳解版
- 互聯(lián)網(wǎng)醫(yī)學信息管理辦法
- DB11T 2442-2025 學校食堂異物管控規(guī)范
- 2025年武漢市漢陽區(qū)社區(qū)干事崗位招聘考試筆試試題(含答案)
- 接警調度培訓課件
- 2025屆山東煙臺中考歷史真題試卷【含答案】
- 志愿者心理調適培訓(改)
- 個人信息保護與安全培訓
- 基于響應面法的工藝參數(shù)優(yōu)化研究
- 2025年高考語文全國卷試題評析-教育部教育考試院
- 抗美援朝紅色文化課件教學
- 2025年04月河北張家口市事業(yè)單位公開招聘筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 調價合同協(xié)議書怎么寫
評論
0/150
提交評論