为什么c++中没有指向引用的指针
发布网友
发布时间:2024-05-10 05:16
我来回答
共2个回答
热心网友
时间:2024-05-10 05:22
int x=5; int &p=x; int y=6;
c++中的静态“应用”变量p初始必须指向一个单元x,这个应用单元p就指向x,p自已无法被访问,所有的操作将是所指向的单元x。其实这应用单元p是存在的,你用c++无法改变而已,你可以用黑办法改变p的指向。
int x=5; int &p=x; int y=6; // p为值5
(int *)(&y)[1]=&y; // 黑办法, 在栈中p单元应在y单元后面1个4字节word。 我用c++builder6.0试的
// 显示 p值,已变成了6,说明改指向了y.
“应用”的真正作用为是函数的传址调用,而不是静态使用。这时指针的作用要强过“应用”了。
如果要问为什么“应用”自已没有指针? 这要涉及它的目的,是为了函数的传址调用,必须访问实参,而不许访问形参。编译器阻止了对“应用”单元本身的访问。
热心网友
时间:2024-05-10 05:22
指针需要指向内存空间,而引用只是一个别名而已,不是内存空间。