小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

初始化動態(tài)分配的數(shù)組問題

 春華_秋實 2012-08-13

初始化動態(tài)分配的數(shù)組問題

分類: c/c++ c/c++ 234人閱讀 評論(2) 收藏 舉報

動態(tài)分配數(shù)組時,如果數(shù)組元素具有類類型,將使用該類的默認(rèn)構(gòu)造函數(shù)實現(xiàn)初始化;如果數(shù)組元素是內(nèi)置類型,則無初始化。
string *psa=new string [10];
int *pia=new int [10];
這兩個new表達(dá)式都分配了10個對象的數(shù)組,第一個數(shù)組是string類型,分配了存儲對象的空間后,會調(diào)用string類型的默認(rèn)構(gòu)造函數(shù)依次初始化數(shù)組中的每個元素。第二個數(shù)組為內(nèi)置類型,分配了存儲10個int對象的內(nèi)從空間,并沒 初始化。

可以跟在數(shù)組后面加一對空圓括號,對數(shù)組元素進(jìn)行初始化。

int *pia2=new int [10]();

圓括號要求編譯器對數(shù)組初始化,這里把數(shù)組元素都設(shè)置為0。//對于這里在VC 6.0下測試,輸出為一個很大的負(fù)數(shù),VS 2010中輸出10個0,對此鴨梨很大。

PS:對于動態(tài)分配數(shù)組,其元素只能初始化為元素類型的默認(rèn)值,而不能像數(shù)組變量一樣,用初始化列表為數(shù)組元素提供各不相同的初值。

 

另外C++種允許動態(tài)分配空數(shù)組

char arr[0];//錯

char *cp=new char [0];//正確,但是不能解引用,因為它沒指向任何元素。

 

這里補充一點:

const char *str=st2.c_str();//st2 是string類型
c_str返回的數(shù)組并不保證一定是有效的,接下來對st2的操作有可能會改變st2的值,使剛才返回的數(shù)組失效,如果程序需要持續(xù)訪問該數(shù)據(jù),則應(yīng)該復(fù)制c_str函數(shù)返回的數(shù)組。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多