结构体,宏,枚举,函数,指针
Posted jianze
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体,宏,枚举,函数,指针相关的知识,希望对你有一定的参考价值。
一、结构体
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 ", 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个字节
以上是关于结构体,宏,枚举,函数,指针的主要内容,如果未能解决你的问题,请参考以下文章
入职培训笔记记录--day9(1指针函数与函数指针函数指针数组 2malloc memset 3递归函数 4结构体 5共用体---》大小端 6枚举)