亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

掌握 C 语言 void 指针:解锁灵活高效的编码技巧

在编程语言中,某些概念能让编码变得更轻松。例如,void 指针可根据最终用户的输入在 C 语言中确定具体数据类型。这引出了我们对 C 语言 void 指针的讨论。

与其他指针一样,void 指针因其灵活性而具有相关功能。但如果您想在编码时节省时间,首选指针函数就是 void 指针。它允许您同时存储和检索不同类型的对象。接下来,您将学习关于 C 语言 void 指针的所有编码技巧。

掌握 C 语言 void 指针:解锁灵活高效的编码技巧

(编程语言示意图)

1. 什么是 C 语言中的 void 指针?

通常,void 指针是不带任何关联数据类型的指针。换句话说,它们就像空容器。这一特性使它们能够保存未知数据类型的变量地址。

C 语言的 void 指针功能允许您将其类型转换为其他数据类型,从而实现轻松的内存分配。随后,这使得内存分配中的字节操作等通用功能成为可能。此外,C 语言中的 void 指针有助于执行通用函数。

掌握 C 语言 void 指针:解锁灵活高效的编码技巧

(C 语言中的简单 “Hello World” 程序)

https://commons.m.wikimedia.org/wiki/File:C_Hello_World_Program.png

2. void 指针在 C 语言中如何工作?

总的来说,指针功能对编程至关重要,至少在地址管理和内存分配方面体现了其重要性。

指针有两种不同类型:通用指针和 void 指针。我们的重点是 void 指针及其在 C 语言中的工作原理。

要在 C 语言中拥有 void 指针,只需使用关键字 “void” 声明一条信息。

总的来说,引用和解引用在通用指针概念中发挥作用。此处的解引用是指获取存储在指针变量中的值。

因此,如果指针值与可用数据类型无关,您可以选择类型转换。

但请注意,void 指针完全不支持任何算术运算。我们改用间接运算符 “*”。因此,在缺少关联数据类型时,类型转换变得必要。类型转换将声明的数据类型与 void 指针关联。否则,运行程序会显示编译器错误。

void 的大小类似于 C 语言中的字符指针。大小对象因指针平台而异。

这些内存管理函数是 malloc() 和 calloc()。它们有助于分配所需数据类型的内存。在某种程度上,内存分配使用的格式让函数指针增强其他功能。

掌握 C 语言 void 指针:解锁灵活高效的编码技巧

(指针在 C 语言中工作原理的图示)

https://commons.m.wikimedia.org/wiki/File:C_pointer_3.svg

3. void 指针的语法

通常,必须使用正确的语法来导入任何编程功能。因此,C 语言中 void 指针的语法是:

void *pointer_name;

其中 “void” 是指针类型的关键字。pointer_name 是我们指向并分配地址的指针名称。

以此为例:

int b = 6

char c = 'z';

因此,当我们包含 void 指针变量时:

void *p = &b; // void 指针分配并保存整型 'b' 的地址

p = &c; // void 指针也保存字符 'c' 的地址

进一步,让我们强调一些语法示例:

int i = 6; // 初始化整型变量

int *p; // 整型指针声明

void *ptr; // void 指针声明

float *fp; // 浮点型指针声明

p = fp; // 无效指针

ptr = p; // 有效指针

fp = &i; // 无效指针

ptr = &i; // 有效指针

ptr = fp; // 有效指针

4. C 语言中 void 指针的示例及样例代码

接下来,我们看下面代码片段中 void 指针参数的示例:

样例代码 #1

在第一个代码示例中,我们展示如何使用 malloc() 函数:

#include <stdio.h>  

#include<malloc.h>  

int main()  

{  

   int a = 90;  

   int *x = (int*)malloc(sizeof(int)) ;  

   x = &a;  

   printf(“pointed value by x pointer : %d”, *x);  

    return 0;  

}  

输出

样例代码 #2

在下一个代码中,我们展示类型转换的概念。

#include <stdio.h>  

int main()  

{  

    void *ptr = NULL; // void 指针变量

    int *p = NULL; // 整型指针变量

    char *cp = NULL; // 字符指针变量

    float *fp = NULL; // 浮点指针变量

    // void 指针大小

    printf(“void pointer size = %d\n\n”, sizeof(ptr));  

    // 整型指针大小

    printf(“integer pointer size = %d\n\n”, sizeof(p));  

    // 字符指针大小

    printf(“character pointer size = %d\n\n”, sizeof(cp));  

    // 浮点指针大小

    printf(“float pointer size = %d\n\n”, sizeof(fp));  

    return 0;  

}  

输出

此外,请参阅下方关于 C 语言 void 指针代码的视频链接。

https://youtu.be/-503stjWLhc

5. void 指针的用途

void 指针在 C 语言编程中具有广泛的相关性。

为更好理解,请参阅下面的代码示例。其中包括:

#include<stdio.h>

void main()

{

int num = 10; // 初始化普通变量

void *ptr; // 声明 void 指针

ptr = # // 将 Ptr 指针指向 num

printf(“The value of integer variable is= %d”, *ptr );

}

然而,运行此代码会导致编译时错误。如果对同一代码使用类型转换来解引用指针,则可获得期望输出:

#include<stdio.h>

void main()

{

int num = 10; // 初始化普通变量

void *ptr; // 声明 void 指针

ptr = # // 将 Ptr 指针指向 num

printf(“The integer variable value is %d”, *(int*)ptr ); // 使用类型转换解引用

}

整型变量的值是 10。

因此,通过类型转换,我们可以解引用 void 指针。

所以,虽然 void 指针不支持指针算术,但类型转换解决了这个问题。输出变为:

掌握 C 语言 void 指针:解锁灵活高效的编码技巧

(Void 指针通过揭示数据变量位置使编码更轻松)

举例说明,见下面的代码:

int main(void)

{

    // 注意 malloc() 函数返回 void *

    // 接着,类型转换为任意数据类型,如 char *, int * 等

    int *x = malloc(sizeof(int) * n);

}

注:上述程序仅在 C 语言中编译通过。

结论

void 指针功能总体上是一种重要的编程工具。程序员发现它很有用,因为它不关联任何数据类型。至少,它消除了指针将不同值和数据类别相互指向的混淆。因此,void 指针减少了过度的类型转换。它也支持通用指针数据类型。因此,它也是一种通用编译器。

您已获得在 C 语言中使用 void 指针的完整指南。然而,如果您有疑问或需要其他编程资源,我们的联系页面随时可用。


工业技术

  1. 机械式铁工机:精密金属加工的多功能性价比之选
  2. 小型伺服压力机:精密金属成型的紧凑型利器
  3. 五轴加工中心:现代制造业的核心装备与选型逻辑
  4. 饮料机器人为何成为现代酒店业的必备设备
  5. 为何数字化工业文档对现代制造业至关重要
  6. 安灯系统:精益制造成功的关键基石
  7. 水射流切割十大核心优势:为什么它是您下一个项目的最优解
  8. 柔性 PCB 设计要点:打造高可靠高性能软板的关键因素
  9. 压缩空气系统能源审计:挖掘节能潜力的关键杠杆
  10. 扭矩限制器详解:保护机械与确保安全运行
  11. 液压夹具:工业安全与效率的关键支点
  12. 制造车间为何需要等离子切割台?四大核心收益解析