c语言学习日志:枚举 指针

枚举

枚举是 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这一过程就是回调函数(没什么特别的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值