文档章节

OC学习笔记八 enum struct

卧龙小
 卧龙小
发布于 2014/09/29 23:59
字数 401
阅读 41
收藏 0

一.enum 枚举值

对于可以列举值的变量,可以用枚举值。比如性别,包含男女;星期 从一到星期天。

enum 定义格式:

typedef enum
{
    enum1,
    enum2=value,//value为整数类型
    enum3
}enum_name;


注意:

1.枚举通过内部成员名赋值为整型值

2.在缺省值的时候,枚举从零开始,即enum1=1,enum2=2 以此类推

3.如果某个成员名赋值,则下个成员标识符比前面一个的值大1.

typedef enum
{
    enum1,
    enum2=7,
    enum3,
    enum4='b',
    enum5
    
}ITest;

//通过成员变量名可以直接访问
NSLog(@"enum1=%d,enum2=%d,enum3=%d,enum4=%d,enum5=%d",enum1,enum2,enum3,enum4,enum5);

//输出结果
enum1=0,enum2=7,enum3=8,enum4=98,enum5=99


二.struct 结构体

结构体是一系列的成员变量组合在一起,有点类似于类的概念,在结构体中,每个变量都依次存储。

结构体的定义:

typedef struct
{
    数据类型 变量名1;
    数据类型 变量名2;
    数据类型 变量名3;//注意用“;”号    
}myStruct

注意:

结构体如果初始化后不能一次性赋值

typedef struct
{
    int year;
    int mouth;
    int day;
}myDate;

@interface TestStruct:NSObject
{
    @public
    myDate _myDate;
}
@end

@implementation TestStruct
@end

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        TestStruct t = [TestStruct new];
        /*
        在new创建的想的过程总,会初始化成员变量
        myDate作为成员变量,再初始化struct后就不能一次性赋值
        */
        //t->_myDate={2011,9,3};//抛异常 expected expression
        
        //通过这种方式赋值,较快捷
        myDate dd ={2011,9,3};
        t->_myDate=dd;
         
        NSLog(@"year = %d , mouth = %d , day = %d",
        p->_myDate.year,
        p->_myDate.mouth,
        p->_myDate.day
        );
    }
    return 0;
}





© 著作权归作者所有

共有 人打赏支持
卧龙小
粉丝 42
博文 146
码字总数 70107
作品 0
西城
程序员
【swift 关键词】让我们牢记swift中的一些关键字用途

好记性不如烂笔头 学习swift 原英文版本 学习swift 翻译中文版 swift数据类型与oc比较 进入 退出swift 第一个关键字guard inout unowned lazy willSet didSet get set mutating Subscripts C...

创意总监
2016/05/25
82
0
RxSwift之路 1#Swift语法知识准备

在开始学习 RxSwift 之前,一定要对 Swift 相关语法有所了解,否则就很难理解为什么可以这样。关于 Swift 的学习其实只要看看 Swift 的官方文档就可够了。我之前也列过一些学习资源:来自一线...

没故事的卓同学
2017/07/11
0
0
初探swift语言的学习笔记七(swift 的关健词)

初探swift语言的学习笔记七(swift 的关健词) 原文地址:http://blog.csdn.net/fengsh998/article/details/32133809 转载请注明出处 每一种语言都有相应的关键词,每个关键词都有他独特的作用...

法斗斗
2016/03/03
16
0
初学objective-c之读书笔记(一)

基本语法: static定义在全局变量上时会改变其作用域,对应所在的局部范围。extern类似php中的global。 结构体struct定义了一个多维kv数组,枚举类型enum检测数据范围,两者通过typedef可封装...

_EKC
2012/11/01
0
2
从YYModel源码中可以学到什么:前篇

前言 一个高性能模型框架。 作者在上给出的性能对比图(iphone 6 y:时间) :具体以下特点:高性能、自动类型转换、类型安全、非侵入性、轻量等。 关于如何使用查看文档和示例【传送门】。 本...

Owenli_千
2017/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jQuery学习笔记180924

jQuery - AJAX 简介 什么是 AJAX? AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。 简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示...

颖伙虫
18分钟前
1
0
springboot整合vue小试牛刀

序 本文主要研究一下如何在springboot工程整合vue maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-we......

go4it
19分钟前
1
0
使用python的profiler工具

主要用来检测python coding的执行时间 fly profiler

steel7c4
23分钟前
0
0
大数据日知录笔记

硬件成本的快速下降,使得电子设备的无处不在成为可能,数据无处不在,无时不在. IBM用3V(Volume,Velocity,Variety)来描述大数据的特点,后来又增加了Value这个维度,即价值密度低的数据成为大数据...

凌渡
32分钟前
0
0
IDEA、WebStorm最新永久激活方式

今天早上一大早打开IDEA发现激活已过期,遂开始寻找激活码。但是一直不成功,后来终于找到一种比较靠谱的激活方式。在此记录下来,以备不时之需。 目前网上现有的激活方式大概有这么三种 激活...

耒耒耒耒耒
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部