OC学习笔记八 enum struct

一.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;
}





你可能感兴趣的:(OC学习笔记八 enum struct)