枚举类型作为形参,并用指针取值

博客介绍了枚举类型作为函数形参的应用,同时提及使用指针来获取枚举类型的值,属于程序设计中关于数据类型和指针操作的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

枚举类型作为形参,并用指针取值

#include<stdio.h>
#include <malloc.h>
typedef enum{NO = 1,YES = 2}AA;
void fun(AA *sa)
{
 	printf("%d",*sa);
}
int main()
{
	AA *d;
	d = (AA*)malloc(sizeof(AA));  // 给指针地址分配内存
	*d = YES;  //值传给指针变量
	fun(d);
	return 0;
}
枚举类型指针作为函数形参是一种常见的编程技巧,特别是在处理需要传递大量状态信息或者通过引用修改变量值的情况下。下面将详细介绍如何使用枚举类型指针作为形参,并给出具体的例子帮助理解。 ### 一、基本概念 **枚举类型(Enum Type)** 枚举是用来声明一组命名整型常量的数据类型,能够提高程序的可读性和维护性。例如: ```c++ enum Color { RED, GREEN, BLUE }; ``` 在这个例子中,`Color`是一个枚举类型,它有三个成员:`RED`, `GREEN`, 和 `BLUE`. **指针(Pointer)** 指针存储的是某个数据项在内存中的地址。当我们将枚举类型用于指针时,则是指向该枚举类型指针可以指向上述定义的颜色之一的位置。 **形参(Formal Parameter)** 形参是在函数定义时使用的参数名,在实际调用此函数时会被传入的具体实参会替换掉它们并参与运算。 ### 二、示例说明 假设我们想要创建一个简单的功能来改变颜色设置: #### 函数原型设计 首先我们需要确定接收什么样的输入以及返回什么样的结果。这里为了简单起见只考虑接受当前颜色并通过引用的方式更改成新的随机选择出来的另外一种非自身以外的所有可能性;因此我们的接口应该包含两个部分——现有颜色及其对应的变化后的目标位置(即输出),并且两者都采用枚举形式表示方便直观表达含义。 ```cpp void changeToRandomDifferentColor(Color *currentColor); // 这里把原来的color改为指针类型以便于能够在函数内部直接操作外部提供的这个局部副本所对应的原始对象内容。 ``` #### 实现逻辑编写 接下来就是按照预期去填充这部分空白了。为了让事情变得更有趣一些我们可以引入标准库 `<cstdlib>` 来生成伪随机数序列从而让每次运行得到的结果不尽相同,同时也要记得加上头文件 `<ctime>` 设置种子保证每秒产生不一样的模式。 完整代码如下所示: ```cpp #include <iostream> #include <cstdlib> // for rand() and srand() #include <ctime> // for time() using namespace std; enum Color { RED, GREEN, BLUE }; const char* colorName[] = {"Red", "Green", "Blue"}; void printCurrentColor(const Color& c) { cout << "The current color is " << colorName[c] << "." << endl; } void initializeRandomSeed() { srand(static_cast<unsigned int>(time(0))); } void changeToRandomDifferentColor(Color *currentColor) { if (*currentColor == RED) *currentColor = (rand() % 2)? GREEN : BLUE; // 非红则绿蓝各半概率切换 else if (*currentColor == GREEN) *currentColor = (rand() % 2)? RED : BLUE; // 绿转红或蓝 else /*if(*currentColr==BLUE)*/ *currentColor = (rand() % 2)? RED : GREEN; // 蓝变红绿任选其一 return ; } int main(){ initializeRandomSeed(); Color myFavoriteColor = RED ; printCurrentColor(myFavoriteColor); changeToRandomDifferentColor(&myFavoriteColor); printCurrentColor(myFavoriteColor); return 0 ; } ``` 以上展示了一个完整的 C++ 示例项目,演示了如何利用枚举类型指针作为函数的形式参数来进行工作流程控制。请注意本段落内所有提到的操作均基于合法语法基础上构建而成!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mg_hover

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值