C++知识点(六)数组、指针与字符串导学
1.數(shù)組
- 地址連續(xù)存放
- 初始化:
- 列出全部初始值后,第1維下標(biāo)個(gè)數(shù)可以省略
- 不做初始化,局部變量中為垃圾數(shù)據(jù),static變量為0
- 只對(duì)一部分進(jìn)行初始化,其余數(shù)值初始化為0
2.動(dòng)態(tài)內(nèi)存分配:
- new?
- delete?
3.動(dòng)態(tài)創(chuàng)建數(shù)組
new p[N]; delele[] p;?
構(gòu)造函數(shù)和析構(gòu)函數(shù)會(huì)被調(diào)用N次
4.動(dòng)態(tài)創(chuàng)建多維數(shù)組
new p[M][N] ;p為指向行的指針
5.動(dòng)態(tài)數(shù)組封裝成類(lèi)
檢查下標(biāo)越界
6.智能指針:垃圾回收機(jī)制,
unique_ptr:不允許多個(gè)指針共享資源,可用move()轉(zhuǎn)移指針
shared_ptr:多個(gè)指針共享資源
weak_ptr:可復(fù)制shared_ptr,構(gòu)造和釋放對(duì)資源不產(chǎn)生影響
7.vector對(duì)象:類(lèi)模板(數(shù)組) 類(lèi)似動(dòng)態(tài)數(shù)組系統(tǒng)封裝成類(lèi)
作用:封裝任何類(lèi)型的動(dòng)態(tài)數(shù)組,自動(dòng)創(chuàng)建和刪除; 數(shù)組下標(biāo)越界檢查
定義:vector<類(lèi)型> 對(duì)象名(長(zhǎng)度)
使用:對(duì)象名[下標(biāo)];對(duì)象名.size();
8.對(duì)象的淺層復(fù)制和深層復(fù)制(復(fù)制構(gòu)造函數(shù))
淺層復(fù)制的問(wèn)題:當(dāng)原含有指針的對(duì)象復(fù)制到新對(duì)象時(shí),只復(fù)制指針地址,若析構(gòu)原對(duì)象,會(huì)把新對(duì)象同時(shí)析構(gòu)掉。此時(shí)需要深層復(fù)制
?
9.移動(dòng)構(gòu)造
將源對(duì)象的狀態(tài)轉(zhuǎn)移到目標(biāo)對(duì)象上,
?
使用場(chǎng)景:返回含有指針成員的對(duì)象,
定義:類(lèi)名(類(lèi)名&& 對(duì)象)
?
10.字符串常量:string類(lèi)(C++)和字符數(shù)組(C風(fēng)格)
連續(xù)順序存放,以‘\0’結(jié)尾
string類(lèi)常用操作:
getline(cin,str,','); 輸入整行字符,第三個(gè)參數(shù)是字符串結(jié)束的標(biāo)志分隔符
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/lemon333333/p/10238883.html
總結(jié)
以上是生活随笔為你收集整理的C++知识点(六)数组、指针与字符串导学的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何使用DotNet 2.0中的应用程序
- 下一篇: [转] .NET 3.5中MSChart