C语言中取地址跟C++中的引用是一个意思吗?
5个回答
展开全部
不是一个意思,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了
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了
展开全部
基本上是一个意思,可以这么理解的。都是指的同一个地址里存放的数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
完全不是一个概念,引用是c++新增的,它只是给变量起了个别名,跟指向的变量是同一个变量
跟地址完全不搭界的事情
跟地址完全不搭界的事情
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
::是作用域操作符,表示你引用的变量限定在该作用域内。
->是箭头操作符,设计它的目的是为了简化输入,以及增强程序的可读性的
->的功能相当于解引用操作符*和成员调用操作符.的组合体
例如:
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
来访问,是不是更简单明了呢
}
二者的功能是一样的。总结就是,->的功能就是提供了一种对象指针更方便的访问对象成员的方法
->是箭头操作符,设计它的目的是为了简化输入,以及增强程序的可读性的
->的功能相当于解引用操作符*和成员调用操作符.的组合体
例如:
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
来访问,是不是更简单明了呢
}
二者的功能是一样的。总结就是,->的功能就是提供了一种对象指针更方便的访问对象成员的方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不一样 引用就是别名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询