zoukankan      html  css  js  c++  java
  • Object C学习笔记20-结构体

      在学习Object C中的过程中,关于struct的资料貌似非常少,查阅了C方面的资料总结了一些学习心得!

      一. 定义结构

        结构体是一种数据类型的组合和数据抽象。结构体的定义语法如下:

        struct 结构体名称

        {

          类型 变量名;

          类型 变量名;

        }

        实例代码如下:

    struct student {
        char* name;
        enum sex sex;
        int age;
    };
    结构体的定义

         上面代码定义了一个结构体student,其中有三个变量name,sex,age ,其中sex是一个枚举。student是一个标识符,也称为tag.

      二. 定义结构变量

        结构变量定义代码如下:

    struct student {
                char* name;
                enum sex sex;
                int age;
    }stu1,stu2;
    定义结构变量

        以上定义了两个student类型的结构变量stu1,stu2;

        或者使用如下方式定义变量

    struct student a={"aaa",34};
    struct student b={"cccc",45};

      三. 如何在类中使用结构

        先定义一个类Person,其中有两个属性为枚举和结构体

    enum sex{
        male=0,
        female=1
    };
    
    struct student {
        char* name;
        int age;
    };
    
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject{
        enum sex sex;
        struct student stu;
    }
    
    @property (nonatomic,assign) enum sex sex;
    @property (nonatomic,assign) struct student stu;
    
    -(void) write;
    
    @end
    
    ---------------------------------------------------------
    
    #import "Person.h"
    
    @implementation Person
    
    @synthesize sex;
    @synthesize stu;
    
    -(void) write{
        NSLog(@"%d",sex);
        
        NSLog(@"%d",stu.age);
        
        NSLog(@"%s",stu.name);
    }
    
    @end
    定义类

        测试代码如下

    Person *person=[[Person alloc] init];
            enum sex sex=female;
            struct student stu={"cnblogs",12};
            person.sex=sex;
            person.stu=stu;
            
            [person write];
    测试代码

        输出结果如下

    2014-03-26 22:13:10.112 ObjectEnum[524:303] 1
    2014-03-26 22:13:10.115 ObjectEnum[524:303] 12
    2014-03-26 22:13:10.116 ObjectEnum[524:303] cnblogs
  • 相关阅读:
    JDBC的PreparedStatement是什么?
    ArrayList、LinkedList、Vector 的区别。
    final finally finalize区别
    面向对象三大特性
    JDBC访问数据库的基本步骤是什么?
    报表中的地图怎么做?
    报表工具如何实现“点击查看原图”
    玩转报表排名之组内排名
    动态隐藏行
    OUT 了??还没玩转报表超链接
  • 原文地址:https://www.cnblogs.com/qingyuan/p/3627090.html
Copyright © 2011-2022 走看看