一:结构体与枚举的介绍:

结构体与枚举:是一种存储复杂的数据
结构体:是用户自定义的一种类型,不同类型的集合,而数组是相同类型变量的集合。

二:结构体的创建

struct user
{
    char username[20];
    int score;
}
这里两种不同类型的属性的结构体。
创建结构体,就是创建一个类型,计算机并没有分配内存空间。

三:结构体的调用

struct user u1;
这里就是对结构体的调用,这个时候计算机才会为其分配内存空间。
u1.username[20] = "Tom";
u1.score = 98;
以上两句就是对结构体的赋值。

四. 用指针指向结构体

char * p = &u1;
说明p是指向user类型的变量u1的地址;
则:u1.score = 98 也可以写作 (*p).score = 98;
引入新概念:p->score,用于表示(*p).score;
  
 下面来看一个练习
#include
 
struct test
{
    int a;
    int b;
    char c;
};
 
int main(void)
{
    struct test s1 = {9,2,'A'};
    struct test * p = &s1;
    printf("%d %d %c\n", s1.a, s1.b, s1.c);
    p->a = 5;
    p->b = 4;
    p->c = 'C';
    printf("%d %d %c\n", s1.a, s1.b, s1.c);
    
    return 0;
}

五:枚举的介绍

枚举:既不适用于普通的类型也不适合结构体那么就可以使用枚举
 

六:枚举的定义

 #define MON 0
    #define TUE 1
    #define WED 2
    #define THR 3
    #define FRI 4
    #define SAT 5
    #define SUN 6
    printf("MON = %d\n", MON);
    printf("TUE = %d\n", TUE);
    printf("WED = %d\n", WED);
    printf("THR = %d\n", THR);
    printf("FRI = %d\n", FRI);
    printf("SAT = %d\n", SAT);
    printf("SUN = %d\n", SUN);
}

七:枚举的使用

我们结合上面的定义来使用者合格枚举
main(){ 
  enum weekday  { sun,mon,tue,wed,thu,fri,sat } a,b,c; 
  a=sun;  
 b=mon;  
 c=tue;  
 printf("%d,%d,%d",a,b,c);  
 }
枚举坦白的说:就是c帮你封装好的一个define集合,用便于记忆的字符来代表常量
 

八:枚举与结构体总结

枚举提供一种使用成组的相关常数以及将常数值与名称相关联的方便途径。例如,可以为一组与一周中的七天相对应的整数常数声明一个枚举,然后在代码中使用这七天的名称而不是它们的整数值。

对于枚举有以下附加限制:    
   它们不能定义自己的方法。    
   它们不能实现接口。    
   它们不能定义属性或事件。

结构用于构造包含数据和函数的数据结构。

枚举跟结构是两回事,没什么可比性。枚举是值,结构是数据结构,换句话说,结构是值和方法的集合。
结构和枚举类型从程序实现的角度来说,是用更接近自然语言的方式来表达数据。比如说实现2维空间的点,你可以使用2维数组,但是可读性会很差。此时,你可以换用结构,结构中含有属性项x、y,这样更接近我们实际使用的方式。
枚举类型本质上就是一个标签集合,之所以有枚举变量,也是为了可读性。比如一个进程的状态有五种:创建、准备、运行、停止、销毁,如果使用数字来表示状态,我们直接用0~4来表示就行,但这样别的人会无法理解,通过枚举类型我们声明eunm status{init,ready,run,stop,destroy},就可以使程序的可读性提高
 
 
 
 
 

iOS开发——C篇&结构体与枚举的更多相关文章

  1. iOS开发UI篇—Button基础

    iOS开发UI篇—Button基础 一.简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二.按钮的三种状 ...

  2. iOS开发UI篇—transframe属性(形变)

    iOS开发UI篇—transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两 ...

  3. iOS开发UI篇—UIScrollView控件介绍

    iOS开发UI篇—UIScrollView控件介绍 一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 ...

  4. iOS开发UI篇—transframe属性(形变)

    iOS开发UI篇—transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两 ...

  5. iOS开发UI篇—核心动画(基础动画)

    转自:http://www.cnblogs.com/wendingding/p/3801157.html 文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(基础动画) iOS ...

  6. iOS开发UI篇—Kvc简单介绍

    ios开发UI篇—Kvc简单介绍 一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observ ...

  7. iOS开发拓展篇—CoreLocation定位服务

    iOS开发拓展篇—CoreLocation定位服务 一.简单说明 1.CLLocationManager CLLocationManager的常用操作和属性 开始用户定位- (void)startUp ...

  8. iOS开发基础篇-Button基础

    一.简单介绍  UIButton 的功能:响应用户操作.显示文字.显示图片.调整内部图片和文字的位置. 二. UIButton 的状态  UIControlStateNormal :普通状态,为默认情 ...

  9. iOS开发UI篇—UITabBarController简单介绍

    iOS开发UI篇—UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...

随机推荐

  1. Hadoop MapReduce中压缩技术的使用

    Compression and Input Splits   当我们使用压缩数据作为MapReduce的输入时,需要确认数据的压缩格式是否支持切片?   假设HDFS中有一个未经压缩的大小为1GB的文 ...

  2. 最受欢迎linux命令

    1.   以 root 帐户执行上一条命令 sudo !! 2.  利用 Python 搭建一个简单的 Web 服务器,可通过 http://$HOSTNAME:8000访问    python -m ...

  3. Flask+Mysql搭建网站之数据库问题

    关于 SQLAlchemy (1.0.8) 和 Flask-SQLAlchemy (2.0) SQLALchemy 是Python语言的SQL工具包及对象关系映射(ORM)工具.Flask-SQLAL ...

  4. 数据库 —— Access 数据库

    0.Access 下载 1.Access 语法 链接:http://blog.csdn.net/tercel99/article/details/5725157 2.ADO 相关: 在VC++6.0中 ...

  5. VS2008LINK : fatal error LNK1000: Internal error during IncrBuildImage

    修改链接选项,方法:项目->属性->链接器->常规   下面的“启用增量链接”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”,然后确定就可以了.

  6. android 回调机制实例!

    详细实现为在类中定义接口.在接口的实现方法中传入參数(也能够不传). 在调用类中传入新建的接口.并实现未实现的方法. public class CallBackClass { //传入对应的接口作为參 ...

  7. XCode5/Apple LLVM 5.0下使用boost的方法

    Because Apple changes the compiler to llvm only in XCode5, so there are some compatible problems wit ...

  8. 在SQL Server 中启用 FileStream

    最近在研究在数据库中存储大数据文件,看到了FileStream 这个功能,记录下来以备后用 FileStream 一般在安装的时候默认是不启用的,如果你留意的话,在选择数据库文件路径那个窗口,有一个标 ...

  9. quick-cocos2dx学习笔记

    20140603 下载quick,拉开拉链,跑setup.bat(注意,setup事就是在系统环境变量里加入QUICK_COCOS2DX_ROOT,假设不运行这个的话,启动player时会报找不到fr ...

  10. apache 配置https(转)

    主要讲述在windows下apache配置SSL以实现http转换为https SSL: SSl是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全.也就是说在SSL下 ...