C语言中取地址跟C++中的引用是一个意思吗?

如题所述

不是一个意思,C语言中取地址是把变量的地址取出来,让一个指针指向这个地址
C++中的引用是为变量起一个别名,这两个名字都是代表这个变量,这个别名是一个引用而不是指针
指针可以随时改变指向的变量
,而引用只能在初始化的时候赋值,赋值后不能改变
如:
指针:
int
i
=
10;
int
*p
=
&i;
要想改变i的值就写*p
=
5;
还以改变p指向的变量如p
=
p
+
1;
引用:
int
i
=
10;
int
&p
=
i;
要想改变i的值就写p
=
5;
这里写p
=
p
+
1;就把i加1了
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-02-08
::是作用域操作符,表示你引用的变量限定在该作用域内。
->是箭头操作符,设计它的目的是为了简化输入,以及增强程序的可读性的
->的功能相当于解引用操作符*和成员调用操作符.的组合体
例如:
class
C
{
static
int
a;
}
访问a就可以使用C::a来访问,表明这个变量a具有类C的作用域。它在该类内可见。了解更多,那么namespace就是个很好的例子。
另外。
class
C
{
private:
int
a;
}
void
main()
{
C
*p=new
C();
//访问a可以使用如下
(*p).a
或者直接
p->a
来访问,是不是更简单明了呢
}
二者的功能是一样的。总结就是,->的功能就是提供了一种对象指针更方便的访问对象成员的方法
相似回答