您的位置:首页 > 其它

结构体(Day-6)

2015-09-14 11:04 267 查看

1.普通结构体

结构体:自定义的一种数据类型 关键字:struct

struct 结构体名{

类型说明符 成员名;

…..

类型说明符 成员名;

};

赋初值:

struct 结构体名 变量名 = {初值};

结构体成员变量访问:

struct teacher{   //   结构体定义
char name[20];
char gender;
int age;
char major[10];
};
struct teacher stu1 = {"balabala", 'f', 28, "iOS"};
stu1.name = "zhangsan";  //  结构体成员变量的访问及赋值
stu2.age = 32;   //    访问:-----结构体变量名.成员变量名-----


2.匿名结构体

结构体的声明与变量定义组合在一起:

struct {
int number;
int age;
}
stu1 = {1, 23}
stu2 = {2, 34];


typedef:定义类型

oc中:

typedef int Integer;  //  之后的int类型数据定义时,可以使用Integer替换


struct student{
int number;
int age;
}
typedef struct student Student;  //  将结构体struct student定义为Student


typedef struct student {
char name[20];
int number;
int age;
float score;
}Student; //  起别名


2.结构体内存占用:

结构体成员变量,从上至下存储,从第一个开始

存储规则:按各种数据类型的倍数存储,如果被占用,向下延续

总空间的字节数 = 最大类型变量字节数的最小整数倍

例:

int a;
double b;
char c;
int d;
char e;   //  需要分配32字节的空间


解释:

a: 0–3

b: 8–15 因为b是double型数据,所以要找8的倍数存储b

c: 16

d:20–23

e: 24 总共占用25个字节,double(8)的倍数:24,32 因为25>24 所以补齐到32各字节0—-31

3.结构体嵌套使用:

typedef struct birthday{
int year;
int month;
int day;
}Birthday;
typedef struct person{
char name[20];
int age;
float high;
float weight;
char gender;
Birthday date;  //  结构体嵌套  访问:结构体变量名.date.year
}Person;


3.结构体数组

定义:

typedef struct student{
char name[20];
int age;
char gender;
float score;
}Student;
Student stu[5] = {  {...},  {...},  {...}, {...}, {...}  };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: