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

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

二:结构体的创建

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. BZOJ2276: [Poi2011]Temperature

    2276: [Poi2011]Temperature Time Limit: 20 Sec  Memory Limit: 32 MBSubmit: 293  Solved: 117[Submit][S ...

  2. POJ Round Numbers(数位DP)

    题目大意: Round Number:  将一个整数转化为二进制数字后,(不含前导0) 要是0的个数 大于等于1的个数 则是 Round Number 问从L-R之中有多少个Round Number ...

  3. Java---文件的切割与合并,已经实现图形界面(工具)

    实现对任意文件的切割,实现对切割后的文件的合并. 上次只写了特定目录下的文件切割与合并,有点遗憾, 这次,我写了一个图形界面来实现对文件的切割与合并. 文件切割: 用户可以自己选择需要切割的文件, 软 ...

  4. HDOJ 2206 IP的计算(正则表达式的应用)

    Problem Description 在网络课程上,我学到了很多有关IP的知识.IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方 ...

  5. 线段树解Insertion Sort Advanced Analysis

    题目出处 题意描述: 这个题目提问的是,在插入排序的序列给定的情况下,求最少需要移动的次数. 序列的长度n <=10^5 序列中的元素a[i] <=10^6 一组数据中case数t < ...

  6. A - 敌兵布阵 - hdu 1166

    Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些 ...

  7. java文件(文件夹)操作

    java中文件操作 判断是否为文件file.isFile()方法 判断是否为目录file.isDirectory()方法 判断是否存在file.exist()方法 创建新文件file.createNe ...

  8. Java获取文件大小的正确方法(转)

    Java中获取文件大小的正确方法 2014-03-28 14:03 64507人阅读 评论(9) 收藏 举报  分类: Java笔记(36)  研究成果(42)  版权声明:本文为博主原创文章,未经博 ...

  9. Java学习路线图·影响一代又一代程序员的经典书籍!(转)

    转自:http://www.douban.com/group/topic/50353428/ 基础篇 ·Java核心技术 卷1 基础知识(原书第9版)最新版·中文版 第13届Jolt生产效率大奖获奖图 ...

  10. The method of type must override a superclass method解决方式

    工程导入myeclipse时,出现问题提示:The method of type must override asuperclass? annotation:@Override的原因 查阅了一下资料, ...