1、結構體(重點)
是程序員自己創建的一種數據類型
語法
結構體的創建
如何使用結構體定義變量,及操作變量
初始化
結構體指針及訪問成員變量的方法
結構體數組及初始化
字符對齊
找到結構體中棧內存最大的成員
以該成員所佔的字節數爲單位, 爲每個成員分配空間
從第二個成員開始,將待分配的字節編號除以該成員所佔的字節數,如果餘數爲0,則進行分配否則空出該字節用下一個分配
#import <Foundation/Foundation.h>
typedef struct Example
{
int i;
char ch;
double d;
}Example1;
int main(int argc, const char * argv[]) {
@autoreleasepool {
int a;
struct Example s;
s.i = 10;
s.ch = 'a';
s.d = 3.14;
Example1 s1 = {2,'b',2.68};
Example1* p = &s1;
p->i = 10;
Example1 s2[3] = {{10,'a',3.14},{20,'b',2.68},{3.,'c',9.8}};
}
return 0;
}
結構體做函數形參
值傳遞(不建議使用)
地址傳遞
#import <Foundation/Foundation.h>
typedef struct
{
char ch;
int i;
}Size1;
typedef struct {
int i;
char ch;
double d;
}Size2;
typedef struct
{
int i;
double d;
char ch;
}Size3;
typedef struct
{
int i;
char ch[10];
double d;
}Size4;
int main()
{
@autoreleasepool {
NSLog(@"%lu",sizeof(Size4));
}
return 0;
}