結構體作為物件的屬性

2021-07-09 13:28:56 字數 1001 閱讀 1021

結構體作為物件的屬性:

結構體如何開闢儲存空間

結構體分配儲存空間是將所有屬性占用的儲存空間的總和加在一起後再分配

注意: 

其實結構體分配儲存空間本質上並不是將所有屬性占用的儲存空間的總和加在一起後再分配

而是會獲取結構體型別中占用記憶體最大的屬性的大小, 然後取該大小的倍數

特例: 

如果剩餘的儲存空間"不夠"儲存將要儲存的資料, 那麼就會重新開闢8個位元組的儲存空間, 並且將需要儲存的資料放到新開闢的儲存空間中

如果剩餘的儲存空間"夠"儲存將要儲存的資料, 那麼就不會開闢了

#import typedef struct  date;

@inte***ce student : nsobject

- (void)say;

@end

@implementation student

- (void)say

@end

int main(int argc, const char * argv) ;

date d = ;

stu->_birthday = d;

// stu->_birthday.year = 1986;

// stu->_birthday.month = 1;

// stu->_birthday.day = 15;

// 3.讓學生說出自己的姓名和生日

[stu say];

/*date d1 = ;

date d2;

d2 = d1; // 本質是將d1所有的屬性的值都拷貝了乙份賦值給d;

d2.year = 2000;

printf("d1 = year = %i\n", d1.year);

printf("d2 = year = %i\n", d2.year);

*/return 0;

}

結構體賦值的實質就是拷貝乙份,不會改變原有的值

結構體作為物件的屬性

typedefstruct date inte ce student nsobject end 1 結構體只能在定義的時候初始化 系統並不清楚它是陣列還是結構體 2 初始化結構體屬性 方法一 強制轉換 stu birthday date 方法二 定義乙個新的結構體,給d賦值,將d賦值給 birthd...

結構體作為屬性

main.m 結構體作為屬性 created by mac on 16 5 10.import 淺拷貝 淺拷貝只是增加了乙個指標指向已經存在的記憶體。占用的同乙個記憶體 深拷貝 深拷貝是增加乙個指標並且申請乙個新的記憶體,使這個增加的指標指向這個新的記憶體,採用深拷貝的情況下,占用的是兩個不同的記憶...

oc11 結構體作為屬性

結構體作為物件的屬性 import typedef struct date inte ce student nsobject void say end implementation student void say end int main int argc,const char ar 大括號有可能...