对象名是不是一个指针?
我知道数组名是一个指针。那么,我想问一问,对象名是不也是一个指针?CDC::FillRectvoidFillRect(LPCRECTlpRect,CBrush*pBrus...
我知道数组名是一个指针。
那么,我想问一问,
对象名是不也是一个指针?
CDC::FillRect
void FillRect( LPCRECT lpRect, CBrush* pBrush );
Parameters
lpRect
Points to a RECT structure that contains the logical coordinates of the rectangle to be filled. You can also pass a CRect object for this parameter.
pBrush
Identifies the brush used to fill the rectangle.
两个形参有啥不同?
都是指针吗? 展开
那么,我想问一问,
对象名是不也是一个指针?
CDC::FillRect
void FillRect( LPCRECT lpRect, CBrush* pBrush );
Parameters
lpRect
Points to a RECT structure that contains the logical coordinates of the rectangle to be filled. You can also pass a CRect object for this parameter.
pBrush
Identifies the brush used to fill the rectangle.
两个形参有啥不同?
都是指针吗? 展开
5个回答
展开全部
lpRect,*pBrush都是对象的地址,该地址指向堆中的某种地方区别是:lpRect这个对象变量在栈中,随着程序段的结束,对象会自动销毁(出栈).pBrush指针,真实的对象变量(*pBrush)在堆中,因此当程序段结束,如果不执行delete,pBrush指针被销毁,但是它指向的对象将成为孤魂野鬼 (内存泄露) 对象名是一个引用,与指针不同,引用不是直接指向对象所在的内存位置,但是它包含了内存地址的信息. 总的来说我们可以把对象名当作是指针,而不就是指针.
展开全部
光从编程角度来说,在Java里面对象名是一个引用(感觉和指针有点区别),在C++里面就是个实体,所以要改动某个对象里面的东西,前面加个“&”成为引用是少不了的
例如:void fillWithInteger(Object &a);
最后说一下指针,同意二楼说法,害了一代人,功能上和引用很像,不过老是出一些诸如越界之类的问题,使用起来也老要在变量前面加一个“*”,实在用起来不爽(当然不排除某些高手仍旧把它用的出神入化)
例如:void fillWithInteger(Object &a);
最后说一下指针,同意二楼说法,害了一代人,功能上和引用很像,不过老是出一些诸如越界之类的问题,使用起来也老要在变量前面加一个“*”,实在用起来不爽(当然不排除某些高手仍旧把它用的出神入化)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针害了一代编程人,其实int i, i也是一个指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询