如何解决参考在C ++中有内存吗?
我是C ++的新手,想知道引用是否在C ++中具有内存。
#include <iostream>
int main()
{
int a = 55;
int& b = a;
int* c = &b;
int* d = &a;
std::cout << (c)<<std::endl;
std::cout << d;
}
这将输出: 0077F800 0077F800
如果它指向相同的地址,那么引用只是访问相同变量的另一种方式吗?
解决方法
...
int a = 55;
int* c = &a;
std::cout << &a << std::endl;
std::cout << c << std::endl;
...
此处显示的两个打印语句将产生相同的内存地址。但是,它们的内存使用情况有所不同。
-
std::cout << &a << std::endl;
当我们打印&a
时,没有分配内存-这也就是说该内存地址没有被存储。 -
在另一种情况下,我们在堆栈上显式分配一个内存字(在32位系统上为4bytes)。然后,该内存将用于存储变量
a
的内存地址。
看看following question,以了解在堆栈与堆中分配指向变量的指针之间的区别。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。