一、结构体

 1 //定义学生的结构体 age score
 2     //从终端输入4个学生的信息
 3     //将这个4个学生的信息按照age升序排序
 4     //输出学生的信息
 5     struct stu {
 6         int age;
 7         float score;
 8     };
 9
10     struct stu stuInfo[4] = {};
11
12     for (int i = 0; i < 4; i++){
13         printf("请输入age:");
14         scanf("%d", &(stuInfo[i].age));
15         printf("请输入score:");
16         scanf("%f", &(stuInfo[i].score));
17     }
18
19     //排序
20     for (int i =0; i < 4; i++) {
21         struct stu min = stuInfo[i];
22
23         for (int j = i+1; j < 4; j++) {
24             if (min.age > stuInfo[j].age ) {
25                 struct stu temp = min;
26                 min  = stuInfo[j];
27                 stuInfo[j] = temp;
28             }
29         }
30
31         stuInfo[i] = min;
32     }
33
34     for (int i = 0; i < 4; i++) {
35         printf("%d: age:%d score:%f\n", i+1, stuInfo[i].age, stuInfo[i].score);
36     }

二、宏

 1 //类型重定义 将某一个类型 重新用一个字符串来表示
 2 typedef int PXD_INT;
 3
 4 /*
 5  结构体的内存分配
 6  1. 同种类型的数据 按照数据本身的字节数来分配
 7
 8  2. 两种数据 按照字节数最高的靠齐 int double  int类型向double靠齐
 9  struct stu{
10     int age;//8
11     double weight;//8
12  }//16个字节内存空间
13
14  3. 多种数据遇到一起 最小的向中间的靠齐
15  struct stru{
16     char dd; //4
17     int age; //4
18     long id; //8
19  } 16个字节
20  */

/*  结构体重新定义之后,就可用Student代替struct stu*/
21 typedef struct stu {
22     char name;
23     char dd;
24     int age;
25     long id;
26 } Student;

三、枚举

 1 #include <stdio.h>
 2 /*
 3  宏定义
 4  #define k字符串 要替换的内容(可以是一个值 也可以是一个表达式)
 5  1. 给一个值赋一定的意义 -1 kOUT
 6  2. 在程序运行、调试的时候 更方便了 如果要更改某一个值  只需要在define这一个地方改就可以了
 7  */
 8 #define kOUT 2018;
 9
10 #define kPIN_UNLOCK 2
11 #define kGRAPTH_UNLOCK 3
12 #define kSLIDE_UNLOCK 1
13 /*
14  永久保存:数据库 文件:图片 视频 UserDefaults
15  枚举
16  1 -> 滑动解锁
17  2 -> PIN解锁
18  3 -> 图案解锁
19
20  */
21
22 typedef enum UnlockType {
23     kUnlockTypeSlide = 1,//默认从0开始
24     kUnlockTypePIN,//1
25     kUnlockTypeGraph,//2
26 } kUnlockType;
27
28 int main(int argc, const char * argv[]) {
29
30     int a = 0;
31
32     enum UnlockType type = kUnlockTypeSlide;
33     kUnlockType lType = kUnlockTypeGraph;
34
35     return 0;
36 }

  注意:枚举类型定义的三个值,在调用时只能使用一个

四、函数

 1 /*
 2  函数: 完成特定功能的一个代码块
 3         一个函数只做一件事儿
 4  1.函数的声明
 5  2.函数的实现
 6  */
 7 //函数的声明 1
 8 int add(int a, int b);
 9
10 //函数的声明 2
11 int minus(int, int);
12
13 int main(int argc, const char * argv[]) {
14     //不要见到具体的代码
15     //只有逻辑代码
16     //具体实现应该放在函数里面
17     add(2, 4);
18     add(4, 5);
19     int result = add(1, 2);
20
21     minus(1, 3);
22     return 0;
23 }
24
25 //下面实现函数
26 int add(int a, int b){
27     int c = a + b;
28
29     return c;
30 }
31
32 //函数的参数名在声明的时候可以省略
33 //但是在具体实现的时候是不可以省略的
34 int minus(int a, int b){
35     return a - b;
36 }

四、指针

指针:代码块与代码块之间的数据传递

   指针变量本身占8个字节

    

转载于:https://www.cnblogs.com/jianze/p/9347881.html

结构体,宏,枚举,函数,指针相关推荐

  1. 结构体中定义函数指针

    结构体指针变量的定义,定义结构体变量的一般形式如下: 形式1:先定义结构体类型,再定义变量 struct结构体标识符 { 成员变量列表;- }; struct 结构体标识符 *指针变量名; 变量初始化 ...

  2. 结构体中的函数指针(c语言里一种思想)

    阅读raft源码的时候看到结构体里面的void(*xx) 看不懂这个地方,看上去又像面向对象的类方法,但是这是c语言的结构体啊,了解了这是函数指针.小趴菜~ 一.函数指针 函数指针是指向函数的指针变量 ...

  3. C语言中的指针应用,函数指针,指针函数,结构体中定义函数指针。

    指针函数 指针函数就是一个返回指针的函数,其本质是一个函数,该函数的返回值是一个指针. 声明一个指针函数 int* fun(int x,int y); 例子 typedef struct _Data{ ...

  4. 结构体自定义指针函数c语言,C语言结构体中的函数指针

    C语言结构体中的函数指针 C语言结构体中的函数指针内容由小编收集整理,希望对您的 学习有所帮助!更多内容请关注应届毕业生考试网! 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准 ...

  5. 结构体自定义指针函数c语言,详解C语言结构体中的函数指针

    结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式, ...

  6. C语言结构体中定义函数指针详解

    C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...

  7. c语言 一个函数返回结构体指针,详解C语言结构体中的函数指针

    结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式, ...

  8. c语言中结构体类型定义的函数指针,结构体中定义函数指针

    结构体指针变量的定义 定义结构体变量的一般形式如下:形式1:先定义结构体类型,再定义变量struct 结构体标识符{ 成员变量列表;-};struct 结构体标识符 *指针变量名;变量初始化:stru ...

  9. 液晶OCM12864,结构体,枚举,指针,规范化和模块化编程

    来自:http://www.eeworld.com.cn/mcu/2011/0804/article_4786.html 1.首先来看看枚举和结构体的使用吧 /******************** ...

  10. C——结构体中的函数指针

    在学习驱动程序的时候,代码中常常看到各种结构体,结构体中也有各种函数指针.在这里复习一下结构体,以及指针函数.  结构体一般有以下几种形式的用法:  1.先定义结构类型再定义变量  如: struct ...

最新文章

  1. [Android]ListView控件之Adapter性能优化
  2. spring-cloud搭建
  3. 线程与内核对象的同步-2
  4. 调参方法论:如何提高机器学习模型的性能?
  5. 小样本点云深度学习库_NeurIPS2019 | MIT与上海交大提出新型点云深度学习框架Point-Voxel CNN...
  6. 【Windows】DOS的常用命令
  7. 愚人节的礼物 栈
  8. eclipse 没有web项目解决办法
  9. NOIP2017普及组复赛 解题分析
  10. QT实现内录-电脑没有立体声混音,通过虚拟声卡实现内录
  11. 惠普hp暗影精灵2 Hackintosh黑苹果安装过程
  12. NLP(自然语言处理)基本入门之分词操作
  13. 乔布斯2005的演讲
  14. Cytoskeleton / 艾美捷——BimC驱动蛋白运动域蛋白
  15. 适合小规模培训、带货的群直播是怎样的呢?
  16. 微型计算机键盘上的tab键汉语译为,微型计算机键盘上的Tab键汉语译为()。
  17. 罗马数字 java_java将罗马数字转换成整数算法详解-Fun言
  18. 不需要到健身房的互动健身,so cool
  19. 修改html文件500错误信息,打开网页提示 HTTP500错误的终极解决方法
  20. 国外服务器解决域名备案问题

热门文章

  1. python表单管理系统_python3开发进阶-Django框架的Form表单系统和基本操作
  2. 布尔盲注怎么用,一看你就明白了。布尔盲注原理+步骤+实战教程
  3. Windows系统(cmd)常用命令
  4. opencv方框内图像保存_opencv 图像滤波(均值,方框,高斯,中值)
  5. 戴尔R730 安装升级VMware vSphere Hypervisor (ESXi) 6.7
  6. Oracle日期范围
  7. [osg]osgDB的加载机制,使用3DS插件做参考(转,整理现有osgDB资料)
  8. 具体解释http 协议
  9. listview当选中某一个item时设置背景色其他的不变
  10. 在.net中读写config文件的各种方法(转)