枚举
枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。
枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。
定义一个枚举类型,需要使用 enum 关键字,后面跟着枚举类型的名称,以及用大括号 {} 括起来的一组枚举常量。每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值。
如果没有指定,那么默认从 0 开始递增。
若有指定,则从指定位置开始
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
如该代码 枚举从1位置开始进行枚举
下面举一个实例,加深一下印象
枚举和switch的联动
#include <stdio.h>
#include <stdlib.h>
int main()
{
enum color { red=1, green, blue };
enum color favorite_color;
/* 用户输入数字来选择颜色 */
printf("请输入你喜欢的颜色: (1. red, 2. green, 3. blue): ");
scanf("%u", &favorite_color);
/* 输出结果 */
switch (favorite_color)
{
case red:
printf("你喜欢的颜色是红色");
break;
case green:
printf("你喜欢的颜色是绿色");
break;
case blue:
printf("你喜欢的颜色是蓝色");
break;
default:
printf("你没有选择你喜欢的颜色");
}
return 0;
}
我们可以看出enum实质(个人理解哈!不一定正确):定义一个从1-n的的数字列表,将枚举元素和1-n这一数字列表一一对应,分配到同一内存空间,因此数字列表1就指向枚举元素1,枚举元素1就指向数字列表1。其实有点类似于指针数组,指针以一定的占用空间一位一位的往后移,每一个地址的位置就对应相应的指向的元素
指针
1.算数运算:指针可以进行四种算术运算:++、--、+、-
比较:指针之间可以进行大小比较(其对应的是指针指向地址的前后位)
2.指针数组
只给出相关定义,因为比较简单
C 指针数组是一个数组,其中的每个元素都是指向某种数据类型的指针。指针数组存储了一组指针,每个指针可以指向不同的数据对象。指针数组通常用于处理多个数据对象,例如字符串数组或其他复杂数据结构的数组
3.指向指针
该图十分的清晰直观,注意指向指针要这么定义 int **x
C中传递指针给函数
C 语言允许您传递指针给函数,只需要简单地声明函数参数为指针类型即可。
下面的实例中,我们传递一个无符号的 long 型指针给函数,并在函数内改变这个值
实例:
当上面的代码被编译和执行时,它会产生下列结果:
Average value is: 214.40000
函数返回指针
只需要声明一个可以返回指针的函数即可
实例如下
函数指针
定义:指向函数的指针变量
函数指针类型的声明:
typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型
定义实例:该程序实现了指针p指向函数max
回调函数
实质:在函数B中调用函数A这一过程就是回调函数(没什么特别的)