C语言void指针(void*)

news/2025/1/2 0:59:08/

Void指针(void *)是一种通用指针类型,可以用来存储任何类型的指针,但不能直接解引用。

在C语言中,void指针可以用来实现对类型不确定的数据的操作,或者用作函数的参数和返回类型,以便于处理不同类型的数据。

以下是一些常见的void指针的用法:

  1. 存储不同类型的指针:

    int num = 10;
    float value = 3.14;
    void *ptr;// 将int类型的指针存储到void指针中
    ptr = #
    printf("Value at ptr: %d\n", *(int *)ptr);// 将float类型的指针存储到void针中
    ptr = &value;
    printf("Value at ptr: %f\n", *(float *)ptr);

    在这个例子中,我们可以使用void指针存储int和float类型的指针,并通过类型转换操作解引用void指针以获取存储的值。

  2. 作为函数参数和返回类型:

void printValue(void *ptr, char type) {
if (type == 'i') {
int num = *(int *)ptr;
printf("Integer value: %d\n", num);
} else if (type == 'f') {
float value = *(float *)ptr;
printf("Float value: %f\n", value);
}
}

int main() {
int num = 10;
float value = 3.14;

   printValue(&num, 'i');printValue(&value, 'f');return 0;

}

在这个例子中,我们定义了一个接受void指针和类型标志符的函数`printValue`,根据传入的类型标志符,我们将void指针转换为相应的类型指针,并进行解引用操作,打印出存储的值。

总结起来,void指针是一种通用的指针类型,可以用于存储任何类型的指针。但在实际使用中,需要注意类型转换的正确性和指针的解引用操作,以确保对存储的对象进行正确的访问。


http://www.ppmy.cn/news/773095.html

相关文章

vue props设置默认值的基本方式

vue官方文档解释:为该 prop 指定一个默认值。如果该 prop 没有被传入,则换做用这个值。对象或数组的默认值必须从一个工厂函数返回。 默认值为字符串 props:{fieldString:{type:String,default: } }默认值为数值 props:{fieldNumber:{type:Number,defaul…

颜色代码对照表

各颜色代码: 1 白色 #FFFFFF 2 红色 #FF0000 3 绿色 #00FF00 4 蓝色 #0000FF 5 牡丹红 #FF00FF 6 青色 #00FFFF 7 黄色 #FFFF00 8 黑色 #000000 9 海蓝 #70DB93 10 巧克力色 #5C3317 11 蓝紫色 #9F…

【设计模式】抽象工厂模式 ( 简介 | 适用场景 | 优缺点 | 产品等级结构和产品族 | 代码示例 )

文章目录 一、抽象工厂模式简介二、抽象工厂模式适用场景三、抽象工厂模式优缺点四、产品等级结构和产品族五、抽象工厂模式代码示例1、冰箱抽象类2、美的冰箱实现类3、格力冰箱实现类4、空调抽象类5、美的空调实现类6、格力空调实现类7、工厂抽象接口 ( 重点 )8、美的工厂实现…

颜色代码(详)

颜色代码: 颜色代码:红色#FF0000 深紫色 #871F78 褐红色 #8E236B 石英色 #D9D9F3 绿色#00FF00 深石板蓝 #6B238E 中海蓝色 #32CD99 艳蓝色 #5959AB 蓝色#0000FF 深铅灰色 #2F4F4F 中蓝色 #3232CD 鲑鱼色 #6F4242 牡丹红 #FF00FF 深棕褐色 #97694F 中森林绿 #6B8E23 猩红色 #BC1…

从视频源头到边缘智能:实现端到端AI解决方案的技术挑战与实践

从视频源头到边缘智能:实现端到端AI解决方案的技术挑战与实践 引言端到端AI解决方案打通视频源头采集视频传输和存储边缘计算和盒子设备 SDK示列 引言 随着人工智能技术的快速发展,端到端AI解决方案在各个领域的应用越来越广泛。这些解决方案能够实现从…

Vivado2020.1 vitis使用:创建hello world项目

前言 之前网上的教程都是基于Vivado2018的,后来接手一个未完工的项目,是使用Vivado2020.1创建的,非常尴尬,只能打开,不能编辑。千辛万苦把2020.1安装好,当然此时不仅仅是Vivado2020.1了,而是vi…

【PCIE】协议分析之-hot-reset热复位

被上游指定热复位整个通路 当高层(higher Layer)指示某些通道进行热复位(Hot Reset)时,以下操作将被执行: 所有在配置的链路中的通道都会发送带有热复位位(Hot Reset bit)和配置的…

【设计模式】第六章:装饰器模式详解及应用案例

系列文章 【设计模式】七大设计原则 【设计模式】第一章:单例模式 【设计模式】第二章:工厂模式 【设计模式】第三章:建造者模式 【设计模式】第四章:原型模式 【设计模式】第五章:适配器模式 【设计模式】第六章&…