hur.cn - 华软网

 热门搜索

求助:指针与引用的区别

  作者:未知    来源:网络    更新时间:2010/12/8

例如
C++">
CRect rcClient;
GetClientRect(rcClient);


C++">
CRect rcClient;
GetClientRect(rcClient);


这两者之间有什么区别呢?

什么情况下用前者》什么时候用后者?

谢谢~~
---华软 网友回答---
一样的代码
---华软网友回复---
你这样写,系统报错
C++">CRect rcClient;
GetClientRect(&rcClient);


---华软网友回复---
GetClientRect的参数是LPRECT

传进去一个CRect的参数时,前面加不加&都是一样的效果
CRect自身就已经重载了&操作和LPRECT的操作
---华软网友回复---
呵呵,看错了,原来那个重载的&,不是取地址的意思
---华软网友回复---
引用楼主 wang471981125 的回复:
例如

C/C++ code

CRect rcClient;
GetClientRect(rcClient);




C/C++ code

CRect rcClient;
GetClientRect(rcClient);



这两者之间有什么区别呢?

什么情况下用前者》什么时候用后者?

谢谢~~

前后代码一样。。。
---华软网友回复---
没有区别!!!!  这不一样的代码
---华软网友回复---
代码一样,没有区别,lz笔误了吧?
---华软网友回复---
指针和引用的区别:
引用必需指向一个对象,如果用一个对象给一个引用赋值,那么改变的是引用指向的对象而不是引用自身。
Int *pi = 0;//pi当前不指向所有对象。
cosnt int &pi = 0;
编译器在内部发生以下的转化:
Int temp = 0;
const int &pi = temp;
指针既能够只象一个对象也能够什么也不指

引用之间的赋值和指针之间的赋值不同。
指针:
Int ival= 1024,ival2 = 2048;
Int *pi = &ival, *pi2 = &ival2;
这时写 pi = pi2;//pi指向的对象ival并没有改变,实际上pi被赋值 为pi2所指向的对象。  
引用:
Int &ri = ival,&ri2 = ival2;
这时写 ri = ri2;//改变的是ival,而不是引用自身ri。赋值之后,两个引用照旧指向各自的原来对象。
---华软网友回复---
引用 7 楼 gameslq 的回复:
代码一样,没有区别,lz笔误了吧?

笔误

---华软网友回复---
还以为是我老了,眼花了呢,
---华软网友回复---
指针能够是NULL引用一定不是空。
---华软网友回复---
很多时候 传送指针和引用 效果都一样 大大地
---华软网友回复---
看了两遍,一样的代码~~
---华软网友回复---
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。