C 中的空指针:为什么在编码体验中需要它们
在编程语言中,某些概念使编码变得更加容易。例如,void 指针根据最终用户在 C 编程语言中的输入确定特定的数据类型。因此,带我们来讨论 C 中的 void 指针。
与其他指针一样,void 指针具有相关的功能,因为它们具有灵活性。但是,如果您想在编码时节省时间,您的首选指针函数是一个 void 指针。此指针允许您同时存储和检索不同的对象类型。进一步,您将了解 C 中涉及 void 指针的所有编码技术。
(一种编程语言的形象)
1。 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 指针以及它们在 C 中的工作方式。
要在 C 中使用 void 指针,您只需要使用关键字“void”声明一条信息。
总体而言,引用和解除引用在通用指针概念中起作用。在这种情况下,取消引用是指获取存储在指针变量中的值。
因此,如果指针值与可用数据类型无关,则可以选择类型转换。
但是,请注意 void 指针不支持任何算术运算。相反,我们使用间接运算符“*”。因此,有必要在没有关联数据类型的情况下进行类型转换。因此,类型转换将与 void 指针一起声明的数据类型相关联。否则,运行程序会显示编译器错误。
void 大小类似于 C 中的字符指针。大小对象因指针平台而异。
这些内存管理函数是 malloc() 和 calloc()。作为回报,这些函数有助于分配所需数据类型的内存。在某种程度上,内存分配使用的格式可以让函数指针增强其他功能。
(C 中指针如何工作的图示说明)。
https://commons.m.wikimedia.org/wiki/File:C_pointer_3.svg
3。空指针语法
通常,最好使用正确的语法来导入任何编程函数。因此,C 中 void 指针的语法是:
无效 *pointer_name;
其中“void”是指针类型的关键字。所以,我们有了指向的指针的名字,并给出了地址分配。
让我们举个例子:
int b =6
char c =‘z’;
因此,在我们包含 void 指针变量的情况下,我们有:
无效 *p =&b; // void 指针分配并保存 int ‘b’ 作为整数地址。
P =&c; // void 指针也保存 char ‘c’ 地址。
更进一步,让我们重点介绍一些语法示例:
诠释我=6; // 整型变量的初始化。
诠释* p; // 整数指针声明。
无效*ptr; // 无效指针声明。
浮动 *fp; // 浮动指针声明。
p=fp; // 无效指针。
点=p; // 有效指针。
fp=&i; // 无效指针。
ptr=&i; // 有效指针。
ptr=fp; // 有效指针。
4. C中空指针的一些示例以及示例代码
继续,我们在下面的代码片段中看一个 void 指针参数的示例:
示例代码#1
在我们的第一个代码示例中,我们展示了如何使用 malloc() 函数,因此:
#include
#include
int main()
{
int a=90;
int *x =(int*)malloc(sizeof(int));
x=&a;
printf(“x 指针指向的值:%d”,*x);
返回 0;
}
输出
示例代码#2
在接下来的代码中,我们展示了类型转换的概念。
#include
int main()
{
无效 *ptr =NULL; //空指针变量
int *p =NULL;// 整型指针变量
char *cp =NULL;//字符指针变量
float *fp =NULL;//浮动指针变量
//空指针大小
printf(“空指针大小 =%d\n\n”,sizeof(ptr));
//整数指针大小
printf(“整数指针大小 =%d\n\n”,sizeof(p));
//char 指针大小
printf(“字符指针大小 =%d\n\n”,sizeof(cp));
//浮点指针大小
printf(“浮点指针大小 =%d\n\n”,sizeof(fp));
返回 0;
}
输出
否则,请参阅下面的视频链接,了解 C 编程中的 void 指针代码。
https://youtu.be/-503stjWLhc
5。空指针的使用
到目前为止,void 指针在 C 语言编程中具有很大的相关性。
- 它们有助于指向任何数据类型的变量。
为了更好地理解,请参阅下面的代码示例。其中包括:
#include
void main()
{
int num=10;//初始化一个普通变量
void *ptr;//声明空指针
ptr=#//将 Ptr 指针指向 num
printf(“整数变量的值为=%d”,*ptr );
}
但是,运行此代码会导致编译时错误。如果您在同一代码上使用类型转换来取消引用指针,您将获得所需的输出,因此:
#include
void main()
{
int num=10;//初始化一个普通变量
void *ptr;//声明空指针
ptr=#//将 Ptr 指针指向 num
printf(“整数变量值为 %d”, *(int*)ptr );// 使用类型转换解除引用
}
整型变量值为10。
因此,通过类型转换,我们可以取消引用 void 指针。
因此,虽然指针算术对 void 指针无效,但类型转换有助于解决该问题。输出变为:
(空指针通过显示数据变量的位置使编码更容易)
- 使用 calloc() 和 malloc(),void 指针有助于为所有数据类型分配内存位置。
为了说明,请看下面的代码:
int main(void)
{
// 注意 malloc() 函数返回 void *
// 跟进,类型转换为任何数据类型,例如 char *, int *,...
int *x =malloc(sizeof(int) * n);
}
需要注意的是,上面的程序只能用 C 编译。
- 最后但同样重要的是,void 指针变量有助于在 C 中实现泛型函数。
结论
一般来说,void 指针函数是必不可少的编程工具。程序员发现它很有用,因为没有与之关联的数据类型。至少,它消除了指向不同值和数据类的指针的混淆。因此,void 指针减少了过多的类型转换。它也支持通用指针类型的数据。因此,它也是一个通用的编译器。
你有一个关于在 c 中使用 void 指针的完整指南。但是,如果您有疑问或需要其他编程资源,我们的联系页面始终可用。
工业技术