首页 > 编程知识 正文

c语言指向函数的指针(c语言中void指针,C 语言 void指针)

时间:2023-05-03 16:41:54 阅读:123235 作者:1486

c语言void指针

过去,我们考虑分配给指针的地址必须与指针声明中指定的类型相同。

例如,如果声明了int指针,则该int指针不能指向浮点变量或其他类型的变量。 也就是说,只能指向int类型的变量。

为了克服这个问题,我使用了指向void的指针。 指向void的指针表示指向所有数据类型的通用指针。

可以为void指针分配任何数据类型的地址,也可以将void指针分配给任何类型的指针,而无需显式类型转换。

void指针语法

void*pointername;

以下是void指针的声明。 void*ptr;

在上述声明中,void是指针类型,' ptr '是指针的名称。

让我们来看几个例子。 inti=9; //初始化整数变量。

int*p; //整数指针声明。

浮点* FP; //浮点指针声明。

void*ptr; //void指针声明。

p=fp; //错误。

fp=i; //错误

ptr=p; //正确

ptr=fp; //正确

ptr=i; //正确

c语言的void指针大小

c语言的void指针的大小与字符类型指针的大小相同。 指向void的指针的表示形式与字符类型的指针相同。 指针的大小取决于所使用的平台。

看看下面的例子。

示例#include

intmain () )

{

void*ptr=NULL; //void指针

int*p=NULL; //整数型指针

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

浮动* Fp=空值; //浮点指针

//void指针的大小

printf(void指针大小=%dnn )、sizeof(ptr );

//整数指针的大小

printf (整数指针大小=%dnn )、sizeof(p );

//字符指针的大小

printf (字符指针大小=%dnn )、sizeof(CP );

//浮点指针的大小

printf (浮点指针大小=%dnn )、sizeof )和FP );

返回0;

}

输出结果void指针的大小=4

整数指针大小=4

字符指针大小=4

浮点指针大小=4

void指针的优点

以下是void指针的优点。 malloc ()和calloc () )函数返回void指针,因此可以使用这些函数分配任何数据类型的内存。

示例#include

#包含

intmain () )

{

inta=90;

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

x=a;

printf(x指针指向的值:%d )、*x );

返回0;

}

输出结果x指针指向的值为:90C的void指针也可以用于实现c的通用函数。

我们为什么要用void指针?

为了可复用性,使用void指针。 void指针可以包含任何类型的对象,并且可以使用具有适当类型转换的间接操作符来检索任何类型的对象。

举个例子来理解吧。

示例#include

intmain () )

{

inta=56; //初始化整数变量' a '。

浮动=4.5; //浮点变量' b '的初始化。

charc='k '; //字符变量' c '的初始化。

void*ptr; //声明空指针。

//给变量“a”分配地址。

ptr=a;

printf(a的值为:%d ),* ) ) (ptr ) );

//给变量' b '分配地址。

ptr=b;

printf((nb的值为:%f ),* ) ) ) ptr ) );

//给变量' c '分配地址。

ptr=c;

printf((NC的值为:%c ),* ) ) ) ptr );

返回0;

}

输出结果a的值为:56

b的值为:4.500000

c的值为:k

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。