首页 > 编程知识 正文

指针都是int行吗(void指针类型)

时间:2023-05-04 21:38:44 阅读:123288 作者:562

void指针类型的作用注意事项

void指针是无类型指针,可以指向任何类型的数据。

作用

在c语言中引入void指针类型有两个方面

函数返回的约束函数参数的约束,以及通常只能用指向同一类型的指针为另一个指针赋值,在不同类型的指针之间赋值是错误的

示例:

int a,b; int *p=a,*p2=b;//是! int a,b; int *p=a; char *p2=b;//否!

(不兼容指针类型初始化)

void指针是发生上述错误的特殊情况,c语言允许使用void指针,可以分配给任何类型的指针,但指针不是固定的。

定义格式如下。

void *p; //通过保存地址,可以指向所有种类的c数据

主() {语音* p; char *p2; p2=p; }注意: void类型指针可以接受其他数据类型指针的分配,但如果需要将void指针的值分配给其他类型指针,则必须强制执行类型转换。

int *p1,*p2void *p3; p3=p1; P2=(int* ) p3; 上述语句是强制类型转换,如果不附加(int* )进行转换,则上述语句是错误的。

示例:指针强制类型转换

#includestdio.h void main () {int a=10; int *p1=a; //定义整数指针p1,初始化void *p2=p1; 定义void指针p2,代入int *p3; P3=(int* ) p2; //strong制类型转换printf((*p1=%dn )、*p1 ); //输出这些指针分别指示的值printf(p2=%dn )、p2 ); printf((*p3=%d(n ),*P3 ); }

注意事项如果函数没有返回值,则必须声明void类型。 如果函数不接收参数,则必须指示参数为void。 void指针不能算术运算。 如果函数的参数是任意类型的指针,则必须声明参数是void*,即void指针类型。void指针不等同于空指针,void指针是指没有指向任何数据的指针,即其指向的是一块空的内存,而空指针是指向NULL的指针,指向的是具体的区域。

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