结构体、枚举

//struct 后面那个要不要都行

typedef struct {//typedef struct后面也可以加个名字 

    __unsafe_unretained NSString*name;

    int age;

    int sex;

    char depment;

    char height;

    char weight;

}Person;

typedef enum {//typedef enum 后面也可以加名字

    spring,

    summer,

    autumn,

    winter

}Season;

@interface ViewController : UIViewController

@property(nonatomic,assign)Season season;

@property(nonatomic,assign)Person per;

/*结构体也是一种数据类型,和int,NSString一样,只不过结构体可以自己定义是什么数据类型,一般有三种方法定义结构体

struct 结构体名字 {

类型 名字;

类型 名字;

类型 名字;

...

};

*/

#pragma mark 方法一

-(void)firstStruct{

    struct student{

        char *namePinYin;

        int  age;

        __unsafe_unretained  NSString*name;//在结构体中定义字符串需这样

    };

    //此时student就代表一种数据类型,然后可以声明这种类型的变量  stu1

    struct  student stu1={"zqk",27,@"郑乾坤"};

    struct student stu2;

    stu2.namePinYin="zhangsan";

    stu2.age=26;

    stu2.name=@"张三";

    NSLog(@"%s %i %@",stu1.namePinYin,stu1.age,stu1.name);

}

#pragma mark 方法二

-(void)secondStruct{

    struct {

        char *namePinYin;

        int age;

        __unsafe_unretained NSString*name;

    }stu;

    stu.namePinYin="lisi";

    stu.age=25;

    stu.name=@"李四";

}

#pragma mark 方法三

-(void)thirdStruct{

    //typedef  是给已有数据类型起个别名;

    typedef struct student {

        char *namePinYin;

        int age;

        __unsafe_unretained NSString*name;

    }defStuden;

    struct student stu;

    stu.namePinYin="wangwu";

    defStuden stu2;

    stu2.namePinYin="wang";

}

#pragma mark 枚举

-(void)EnumText{

    _season=winter;

    switch (_season) {

        case spring:

            NSLog(@"春");

            break;

        case summer:

            NSLog(@"夏");

            break;

        case autumn:

            NSLog(@"秋");

            break;

        case winter:

            NSLog(@"冬");

            break;

        default:

            break;

    }

}

你可能感兴趣的:(结构体、枚举)