C物件陣列和其它型別的資料陣列有何異同點

2023-01-07 10:45:36 字數 768 閱讀 8842

1樓:匿名使用者

原理是一樣的,只是有一點不同的是,物件陣列在分配記憶體的時候會多分配四個位元組的長度用來表示陣列中元素的大小。

2樓:失落間諜

其實原理是一樣的 沒有太大的不同· 物件陣列裡邊的元素是物件 其他型別的陣列裡邊元素是其他型別 比如int型陣列裡邊每個元素都是int型

3樓:匿名使用者

由於物件涉及預設建構函式、拷貝建構函式、複製操作符、繼承等因素的影響,使用時需要注意以下幾點:假設有個類為animal,有個子類為cat

1. animal a[100]; // 會呼叫animal的預設建構函式來初始化這100個物件,如果animal不存在預設建構函式,那麼這段**無法通過編譯;如果animal含有純虛擬函式,也無法例項化animal所以這段也不能通過編譯。

2. a陣列不能儲存animal的子類cat的物件,因為子類一般情況下都比父類多一些資料,所以佔用的記憶體比較大,將cat放入animal會使cat比animal多的資料被切掉,更不可以用a陣列的首地址賦給cat*型別的指標,因為陣列的資料是連續存放的不同的元素長度會導致子類指標計算時得到錯誤的地址。

3. a[0] = a[1];//這個操作會使用呼叫animal的operator=(),等價於 a[0].operator=(a[1]),animal可以自定義這個函式的行為。

拷貝建構函式同理。

4樓:匿名使用者

單從陣列方面講,沒有任何不同點,你問所謂得「異同」得目的是什麼?

C陣列負下標的資料型別問題,C 陣列下標的型別問題,這樣為什麼不對,應該在怎麼改?

下標表示從當前位置開始尋找 正負號可以理解成尋找方向 正表示向下找第幾個 負表示向上找 都跟你的指標指向的資料型別相同 c 語言不支援下標為負數的陣列,python語言則支援。c 陣列下標的型別問題,這樣為什麼不對,應該在怎麼改?10 void fun const int n 這裡的n是一個cons...

c語言陣列的下標,C語言陣列的下標

樓主你好。注意a是常量,不要被別人誤導了。實際上a是陣列名代表陣列的首地址 注意雖然陣列名和指標都代表地址,但是陣列名不是指標,指標是變數,這個a是常量,可以叫指標常量 而i實際上可以看做陣列中的元素距離陣列首地址的偏移量 距離 a i 就是取距離陣列首元素距離為i的陣列中元素的值,也就是a i 了...

c語言,陣列名與陣列元素的關係,C語言,陣列名與陣列第一個元素的關係

主要有bai如下區別 1 數du組zhi名代表 陣列的首地址,若daoc abcdef 則陣列名c代表陣列元素內 a 的地址。2 s用於輸出一容個字串,對應的引數是陣列名 即陣列的首地址 輸出從陣列起始位置到陣列中第一個 0 之間的全部字元。2 c用於輸出一個字元,即字元的值。而陣列名是陣列的首地址...