void指针

来源:互联网 发布:钟恩淇的淘宝店怎么样 编辑:程序博客网 时间:2024/06/05 18:51

       我们已经知道指针其实就是保存地址的变量,普通的指针可以修改自己的值来改变指针的指向,当然指针之间也可以相互赋值,但有一个前提,那就是指针类型必须相同

        如:

                 int * a=NULL,*b=NULL;

                 float * c=NULL;

                 int x=1;

                a=&x;

                b=a;       //正确,a,b类型相同

                c=a;       //错误,指针a,c是不同的类型

      所以,在这中情况下,void指针就应运而生了。不过,有一点千万不要理解错哦,void指针不是不能指向任何类型,相反,这个指针可以指向任意类型的数据

      但是,使用void指针时有两点需要注意:

                                                                ①:在使用void指针时必须进行强制类型转换,将viod指针转换成它所指向的数据单元的实际类型后才能使用;

                                                                ②:将viod指针赋值给普通指针时必须将viod指针转换成普通指针的实际类型

     来看一个程序,差不多你就能明白了

                          #include<iostream>
                         using namespace std;
                         int main()
                         {
                                  int x=1;
                                  void * p=&x;
                                  int *q=NULL;
                                  //cout<<"*p="<<*p<<endl;         //错误,使用void指针时必须将它强制转换成它所指向的单元的实际类型
                                  cout<<"*p="<<*(int *)p<<endl;
                                  //q=p;                                        //错误,将void指针赋值给普通指针时,一定要进行强制类型转化成普通指针的类型
                                 q=(int *)p;
                                 cout<<"*q="<<*q<<endl;
                                 return 0;
}

0 0
原创粉丝点击