ios开发-object-c学习之结构体使用-编程思维

前言:定义结构体并不是定义一个变量,而是定义了种数据类型。

 

结构体作用:

  结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。
  在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。
  结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。

摘自:百度百科

 

一、定义结构体

基本语法:

struct 结构体名字 {
    类型 名字;
    类型 名字;
    类型 名字;
    ... 
};

 

结构体的定义方法三种,请继续往下看。

定义方法一:

struct programmer {
    char *name;
    int age;
    int phone;
};

初始化:

struct programmer proTest = {"Garvey", 28, "13823992034"};

 

定义方法二:

struct {
    int age;
    int tag;
} str1;

初始化,这个只能使用点语法,具体请往下看。

 

定义方法三:

typedef struct {
    char *name;
    int tag;
} structExt;

 使用typedef可以创建新类型,现在可以使用structExt定义新的结构体变量了。

 

我们可以看到,方法一和方法二的区别。方法一声明了结构体名字,但没有声明结构体变量。方法二声明了结构体变量,但没有声明结构体名字。因此我们可以知道:“结构体名字和结构体变量必须有其一,也可以两者都存在”。

结构体名字及结构体变量都存在,例:

struct programmer {
    char *name;
    int age;
    char *phone;
} proSuccess, proFail;

 

二、结构体成员访问和赋值

访问和赋值都是使用点语法

访问:

proSuccess.name;
proSuccess.age;
proSuccess.phone;

 

赋值/修改:

proSuccess.name = "Calvin";
proSuccess.age = 27;
proSuccess.phone = "13138940202";

 

三、注意点

错误初始化写法,这句话在预编译时就会报错:

proSuccess = {"name", 10, "13732423452"};

 

写了这么多,都还没输出过任何内容,这里要说的是。使用char定义的变量,输出时要使用%s。例:

NSLog(@"%s- %d - %s", proTest.name, proTest.age, proTest.phone);

PS:使用char定义的变量,不能存储中文(因为我不知道如何输出,输出会变成乱码,你根本都看不懂)。

 

 


博文作者:GarveyCalvin

博文出处:http://www.cnblogs.com/GarveyCalvin/

本文版权归作者和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作!

 

版权声明:本文版权归作者所有,遵循 CC 4.0 BY-SA 许可协议, 转载请注明原文链接
https://www.cnblogs.com/GarveyCalvin/p/4160077.html

ios开发-自动布局之autoresizingmask使用详解(storyboard&code)-编程思维

前言:现在已经不像以前那样只有一个尺寸,现在最少的IPHONE开发需要最少需要适配三个尺寸。因此以前我们可以使用硬坐标去设定各个控件的位置,但是现在的话已经不可以了,我们需要去做适配,也许你说可以使用两套UI或两套以上的UI,但那样不高效也不符合设计。IOS有两大自动布局利器:autoresizing 和 autola

ios开发-正则表达式的使用方法-编程思维

前言:在表单验证中,我们经常会使用到正则,因为我们需要用它来判断用户输入的字符是否为合法的,如果是不合法的,那么应该提示用户输入错误,并不让提交至服务器。我们也可以通过正则表达式,从用户输入的字符串中过滤并获取我们想要的特定部分。总而言之,正则表达式是非常强大的。     方法一、谓词(NSPredicate)创建正则

ios开发-protocol协议及委托代理(delegate)传值-编程思维

前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做,它不关心。   当一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必要实现的方法,你

结构体笔记(结构体嵌套、自引用,结构体指针) - 编程思维

结构体笔记(结构体嵌套、自引用,结构体指针)结构体(struct)1、基本概念  结构体-----将不同类型的数据成员组织到统一的名字之下,适用于对关系紧密,逻辑相关、具有相同或不同类型的数据进行处理2、结构体定义格式定义结构  为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新

c语言结构体位域简单介绍-编程思维

目录0 前言1 结构体简单介绍2 结构体的内存对齐3 结构体位域 历史文章 0 前言 这几天看到一个有趣的结构体,之前没有见过,稍微了解了一下,顺便记录一下 以下例子均在32位操作系统操作 1 结构体简单介绍 在C语言中,每种类型的变量都会占用一定的字节数,以下面几种为例 char 1B int 4B

swift学习笔记(11)--类与结构体-编程思维

类与结构是编程人员在代码中会经常用到的代码块。在类与结构中可以像定义常量,变量和函数一样,定义相关的属性和方法以此来实现各种功能。 和其它的编程语言不太相同的是,Swift不需要单独创建接口或者实现文件来使用类或者结构。Swift中的类或者结构可以在单文件中直接定义,一旦定义完成后,就能够被直接其它代码使用。 注意:一