課程
/后端開發
/C++
/C++遠征之封裝篇(下)
Coordinate *p = new Coordinate 是定義了一個指針還是一個指針數組?
2018-05-20
源自:C++遠征之封裝篇(下) 2-2
正在回答
嚴格來說,這既不是一個指針,也不是一個數組,只是一片或多片連續的堆空間而已,剛開始指針類型*p空間是未知的,它由new方法,開辟一個連續的空間,以便數據存儲或訪問。只是這片空間由符號p進行表示而已。p+1 p+2 ...只是多個這樣類似的連續的空間。而在c語言中指針數組是不連續的空間,malloc開辟的空間數組名不能代替數組首元素地址。其空間也是固定的,很容易造成實際存儲的元素大小大于預設的空間長度。
舉報
封裝--面向對象三大特征之一,通過案例讓C++所學知識融會貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-05-21
Coordinate *p = new Coordinate();是一個指針
Coordinate *p = new Coordinate[3];是一個指針數組
2018-09-18
嚴格來說,這既不是一個指針,也不是一個數組,只是一片或多片連續的堆空間而已,剛開始指針類型*p空間是未知的,它由new方法,開辟一個連續的空間,以便數據存儲或訪問。只是這片空間由符號p進行表示而已。p+1 p+2 ...只是多個這樣類似的連續的空間。而在c語言中指針數組是不連續的空間,malloc開辟的空間數組名不能代替數組首元素地址。其空間也是固定的,很容易造成實際存儲的元素大小大于預設的空間長度。