结构struct:1-结构的定义与基本使用
Objective-C中除了类之外,还定义了结构struct用来存储变量。在一些场景下,类和结构是可以通用的。
假如我们希望存储日期,包含:年、月、日三个变量,那么可以考虑定义一个Date类,其中包含3个int类型的属性,分别存储year,month和day。另外,我们也可以使用结构来定义一个新的数据类型。
结构类型的定义
可以使用如下方法来定义结构类型。
struct 结构体名称 {
成员变量类型 成员变量名称;
成员变量类型 成员变量名称;
成员变量类型 成员变量名称;
...;
};
例如:我们可以定义一个结构体类型Date来存储日期。
//定义名为Date的结构体
struct Date {
int day;
int month;
int year;
};
结构变量的声明
声明一个结构体变量,会在内存中分配空间,等待给成员变量赋值。声明结构体变量的方式为:
struct 结构体名称 结构体变量名称;
例如:
//声明一个名为today的结构体变量,类型为date,此时会分配内存空间,用来存储日月年
struct Date today;
结构变量的赋值/初始化
结构变量的初始化以及赋值可以采用如下两种方式。
- 使用点语法赋值。
//初始化
today.day = 2;
today.month = 9;
today.year = 2016;
- 在定义结构体变量时,直接赋值。
struct Date tomorrow = {3,9,2016};
结构成员变量的访问
我们可以使用点语法来获取结构中成员变量的值。
void structTest () {
//定义名为Date的结构体
struct Date {
int day;
int month;
int year;
};
//声明一个名为today的结构体变量,类型为date,此时会分配内存空间,用来存储日月年
struct Date today;
//初始化
today.day = 2;
today.month = 9;
today.year = 2016;
struct Date tomorrow = {3,9,2016};
//访问
NSLog(@"今天是:%d年%d月%d日",today.year,today.month,today.day);
NSLog(@"明天是:%d年%d月%d日",tomorrow.year,tomorrow.month,tomorrow.day);
}
运行结果:
示例代码
https://github.com/99ios/6.5.1
文章发布时间为: September 5th , 2016 at 11:52 am
最后编辑时间为: September 6th , 2017 at 10:56 am
本文由 99ios 创作,转载请注明出处
最后编辑时间为: September 6th , 2017 at 10:56 am
本文由 99ios 创作,转载请注明出处