结构体,宏,枚举,函数,指针
一、结构体
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:先定义结构体类型,再定义变量 struct结构体标识符 { 成员变量列表;- }; struct 结构体标识符 *指针变量名; 变量初始化 ...
- 结构体中的函数指针(c语言里一种思想)
阅读raft源码的时候看到结构体里面的void(*xx) 看不懂这个地方,看上去又像面向对象的类方法,但是这是c语言的结构体啊,了解了这是函数指针.小趴菜~ 一.函数指针 函数指针是指向函数的指针变量 ...
- C语言中的指针应用,函数指针,指针函数,结构体中定义函数指针。
指针函数 指针函数就是一个返回指针的函数,其本质是一个函数,该函数的返回值是一个指针. 声明一个指针函数 int* fun(int x,int y); 例子 typedef struct _Data{ ...
- 结构体自定义指针函数c语言,C语言结构体中的函数指针
C语言结构体中的函数指针 C语言结构体中的函数指针内容由小编收集整理,希望对您的 学习有所帮助!更多内容请关注应届毕业生考试网! 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准 ...
- 结构体自定义指针函数c语言,详解C语言结构体中的函数指针
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式, ...
- C语言结构体中定义函数指针详解
C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...
- c语言 一个函数返回结构体指针,详解C语言结构体中的函数指针
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式, ...
- c语言中结构体类型定义的函数指针,结构体中定义函数指针
结构体指针变量的定义 定义结构体变量的一般形式如下:形式1:先定义结构体类型,再定义变量struct 结构体标识符{ 成员变量列表;-};struct 结构体标识符 *指针变量名;变量初始化:stru ...
- 液晶OCM12864,结构体,枚举,指针,规范化和模块化编程
来自:http://www.eeworld.com.cn/mcu/2011/0804/article_4786.html 1.首先来看看枚举和结构体的使用吧 /******************** ...
- C——结构体中的函数指针
在学习驱动程序的时候,代码中常常看到各种结构体,结构体中也有各种函数指针.在这里复习一下结构体,以及指针函数. 结构体一般有以下几种形式的用法: 1.先定义结构类型再定义变量 如: struct ...
最新文章
- [Android]ListView控件之Adapter性能优化
- spring-cloud搭建
- 线程与内核对象的同步-2
- 调参方法论:如何提高机器学习模型的性能?
- 小样本点云深度学习库_NeurIPS2019 | MIT与上海交大提出新型点云深度学习框架Point-Voxel CNN...
- 【Windows】DOS的常用命令
- 愚人节的礼物 栈
- eclipse 没有web项目解决办法
- NOIP2017普及组复赛 解题分析
- QT实现内录-电脑没有立体声混音,通过虚拟声卡实现内录
- 惠普hp暗影精灵2 Hackintosh黑苹果安装过程
- NLP(自然语言处理)基本入门之分词操作
- 乔布斯2005的演讲
- Cytoskeleton / 艾美捷——BimC驱动蛋白运动域蛋白
- 适合小规模培训、带货的群直播是怎样的呢?
- 微型计算机键盘上的tab键汉语译为,微型计算机键盘上的Tab键汉语译为()。
- 罗马数字 java_java将罗马数字转换成整数算法详解-Fun言
- 不需要到健身房的互动健身,so cool
- 修改html文件500错误信息,打开网页提示 HTTP500错误的终极解决方法
- 国外服务器解决域名备案问题
热门文章
- python表单管理系统_python3开发进阶-Django框架的Form表单系统和基本操作
- 布尔盲注怎么用,一看你就明白了。布尔盲注原理+步骤+实战教程
- Windows系统(cmd)常用命令
- opencv方框内图像保存_opencv 图像滤波(均值,方框,高斯,中值)
- 戴尔R730 安装升级VMware vSphere Hypervisor (ESXi) 6.7
- Oracle日期范围
- [osg]osgDB的加载机制,使用3DS插件做参考(转,整理现有osgDB资料)
- 具体解释http 协议
- listview当选中某一个item时设置背景色其他的不变
- 在.net中读写config文件的各种方法(转)