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

 

时间: 2024-09-22 11:53:25

Object C学习笔记20-结构体的相关文章

Object C学习笔记21-typedef用法

在上一章的学习过程中遇到了一个关键字typedef,这个关键字是C语言中的关键字,因为Object C是C的扩展同样也是支持typedef的. 一. 基本作用 typedef是C中的关键字,它的主要作用是给一个数据类型定义一个新的名称,这些类型报告内部数据类型,比如int,char 还有自定义类型struct,enum等. typedef一般有两个作用:(1) 给某种类型顶一个定义比较容易记的名字,相当于别名;(2)简化较为复杂的类型声明.   二. typedef的使用 1. 定义新类型 语法

Object C学习笔记17-动态判断和选择器

当时学习Object C的时被人鄙视了一顿,说使用.NET的思想来学Object C就是狗屎:不过也挺感谢这位仁兄的,这让我学习的时候更加的谨慎.今天的学习笔记主要记录Object C中的动态类型相关内容. 首先还是和.NET先对比一下,.NET中存在一个关键字var ,这个估计用过.NET的都知道,除非没有接触过3.0以上版本的.在.NET中能够使用var来声明任何类型的局部变量,负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而且只能是局部变量.但是这里要注意的时var 并不是一

Object C学习笔记10-静态方法和静态属性

在.NET中我们静态使用的关键字static有着举足轻重的作用,static 方法可以不用实例化类实例就可以直接调用,static 属性也是如此.在Object C中也存在static关键字,今天的学习过程使用到了这个关键字,在这里记录一下static的使用. 在Object C的语法中声明后的static静态变量在其他类中是不能通过类名直接访问的,它的作用域只能是在声明的这个.m文件中 .不过可以调用这个类的方法间接的修改这个静态变量的值.对于Object C中的类使用和定义在前面已经做过相应

Object C学习笔记15-协议(protocol)

在.NET中有接口的概念,接口主要用于定义规范,定义一个接口关键字使用interface.而在Object C 中@interface是用于定义一个类的,这个和.NET中有点差别.在Object C中有一个协议(protocol) 的概念,这个和.NET中的interface类似. 协议(Protocol) 在列出的方法在本类中并没有相应实现,而是别的类来实现这些方法,而定义协议必须使用protocol关键字.   一. 如何定义protocol的定义 如何使用XCode新建一个协议.h 文件

API Demos 2.3 学习笔记 (20)-- Views-&amp;gt;Lists-&amp;gt;Array

更多精彩内容,请点击阅读:<API Demos 2.3 学习笔记> 从本节开始,我们开始接触List方面的内容.List部分的内容主要用到控件ListView.根据我的了解,我喜欢把ListView的应用框架分成三层来理解:数据,适配器,UI.其中,数据主要是一系列特定数据的集合,例如,一个字符串数组等:UI主要是ListView,或者包含ListView控件的ListActivity:适配器则有很多,例如:ArrayAdapter<T>, BaseAdapter, CursorA

Nginx学习之三-ngx_http_request_t结构体

ngx_http_request_s是nginx中非常重要的一个结构体,贯穿于htpp请求处理的整个过程中. 下面解释了ngx_http_request_s结构体中与HTTP框架相关的重要的成员变量.   [cpp] view plaincopyprint?   struct ngx_http_request_s {       uint32_t                          signature;         /* "HTTP" */          //请求

Object C学习笔记8-字符串NSString之二

5. 字符串是否包含 hasPrefix 判断字符串是否以某个字符串开头 hasSuffix 判断字符串是否以某个字符串结尾 NSString *str1=@"Object C学习正在进行中.... LOVE"; if([str1 hasPrefix:@"Object"]){ NSLog(@"字符串:%@是以%@开头",str1,@"Object"); } if([str1 hasSuffix:@"LOVE"

Object C学习笔记6-如何在Windows环境搭建Object C开发环境

1. 安装编译环境 Object C和其他很多语言一样,都需要有一个编译器.Object C 是在GCC下编译的.GCC(GNU Compiler Collection,GNU编译器集合),是一套由 GNU 开发的编程语言编译器.很多人想到学习Object C就想到mac电脑,想到XCode开发工具.其实在Windows环境一下也可以编译Object C. 首先下载Windows版本的GCC编译器,下载地址:http://wwwmain.gnustep.org/resources/downloa

Object C学习笔记9-字符串NSMutableString

  NSMutableString类继承自NSString,所以在NSString中的方法在NSMutableString都可以使用. NSMutableString和NSString的区别在于NSMutableString是动态的字符串,可以动态的添加,修改,删除等.在前面提到了就和.NET中的string和StringBuilder的区别一样.   1. 添加字符串 向字符串末尾添加字符串可以使用appendString方法和appendFormat方法.appendString方法主要用于