中易网

C++指针和引用之间怎么转换?

答案:3  悬赏:80  
解决时间 2021-03-03 06:01
RT
最佳答案
把指针用 * 就可以转换成对象,可以用在引用参数当中。
把引用类型的对象用 &取地址就获得指针了。
全部回答
(1)引用是c++的特性,c语言中没有;(2)引用是个别名,不是数据类型,不分配存储空间,只是一种机制;(3)引用作为目标的别名使用,对引用的改动实际上是对目标的改动;(4)在c++中,定义含有分配存储空间的意义,那么引用是只有声明,没有定义;(5)要求在声明一个引用前,它所维系的目标已经声明或者定义;例如:inta;int&b=a;//a应该是已经声明或者定义过的变量;(6)引用在声明时,必须被初始化,否则产生编译错误;(7)c++没有提供访问应用本身地址的方法,如果程序寻找引用的地址,只能找到它所引用的目标的地址;引用一旦初始化,就维系在一定的目标上,再也不分开;(8)引用与指针有很大的区别,指针是个变量,可以把它再次赋值成指向别处的地址,但是,建立引用时必须初始化,并且决不会再关联其他的任何变量;(9)引用本身不是一种数据类型,所以没有引用的引用,也没有引用的指针;(10)有空指针,无空引用;由此可知道,指向引用的指针是不存在的,因为它没有空间,也就没有地址,及时使用&,取出来的也只是它引用对象的地址。而指针的引用和其他的引用一样,可以这么理解:typedefint*type;typepi;type&pr=pi;
指针和引用的区别 首先,引用不可以为空,但指针可以为空。前面也说过了引用是对象的别名,引用为空——对象都不存在,怎么可能有别名!故定义一个引用的时候,必 须初始化。因此如果你有一个变量是用于指向另一个对象,但是它可能为空,这时你应该使用指针;如果变量总是指向一个对象,i.e.,你的设计不允许变量为 空,这时你应该使用引用。如下图中,如果定义一个引用变量,不初始化的话连编译都通不过(编译时错误): 而声明指针是可以不指向任何对象,也正是因为这个原因,使用指针之前必须做判空操作,而引用就不必。 其次,引用不可以改变指向,对一个对象"至死不渝";但是指针可以改变指向,而指向其它对象。说明:虽然引用不可以改变指向,但是可以改变初始 化对象的内容。例如就++操作而言,对引用的操作直接反应到所指向的对象,而不是改变指向;而对指针的操作,会使指针指向下一个对象,而不是改变所指对象 的内容。见下面的代码: #include using namespace std; int main(int argc,char** argv) { int i=10; int& ref=i; ref++; cout<<"i="<
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯