reference 变量的几个问题

原创 2012年03月23日 21:56:49

问题:

当你声明一个pointer时,系统会给这个变量分配多少内存?

   根据OS的位数,32位返回4个字节,64位8个字节

当你声明一个reference变量时,系统会给这个变量分配多少内存?

  不分配空间。reference变量和所关联的变量是同一个变量。

   int x;

   int &ref=x;
   cout<<endl<<&x;        //address of ‘x’
   cout<<endl<<&ref;     //address of ‘ref’ 

  Both addresses will be the same (which is whyworking on ‘x’ is the same as working on ‘ref’).

Compiler 会在编译的时候用x来代替ref.

 

当一个函数用Pass by reference 的时候,compiler是如何实现的?

   As forpass-by-reference, if a language has pointers, pass by reference can be done bypassing pointers by value. The compiler can just have a preprocessing stepwhere it "eliminates" pass by reference by making the followingtranslation:

  • For every function parameter that is pass by reference, it changes it to a pointer to that type passed by value (e.g. void func(int &foo) -> void func(int *foo))
  • For every use of that pass-by-reference parameter inside that function, change it to an explicit pointer dereference (e.g. foo -> *foo) (with the exception that if it is passed by reference again, don't dereference it)
  • Every time that function is called, whatever is passed to the pass-by-reference variable, take the address of it explicitly (e.g. func(bar) -> func(&bar))

关于static静态变量的几个问题

1、C语言中的关键字static和C++中的关键字static有什么区别 在C中static用来修饰局部静态变量和外部静态变量、函数。而C++中除了上述功能外,还可以用来定义类的成员变量和函数,即静...

VB调试过程中的几个问题

  • 2012年05月19日 14:40
  • 28KB
  • 下载

小白关于keil4调试仿真的几个问题:一直停在systeminit中的do,while;程序一直停在启动文件中的BX R0;void HardFault_Handler(void),

分享学习,共同成长:这几个问题都是新手比较头痛的,新手在出现HardFault时,可能不是因为内存溢出,访问越界或是堆栈溢出,有可能仅仅只是自己一些最基本的规则没弄清楚而导致,所以分享下自己一些小问题...

二叉树的子树和子结构的几个问题

子树的意思是包含了一个节点,就得包含这个节点下的所有节点,一棵大小为n的二叉树有n个子树,就是分别以每个节点为根的子树。 子结构的意思是包含了一个节点,可以只取左子树或者右子树,或者都不取。 ...
  • binling
  • binling
  • 2015年08月26日 13:09
  • 1098

关于计算机普及教育的几个问题

  • 2011年05月12日 18:42
  • 42KB
  • 下载

排队论中几个问题的探讨

  • 2011年12月13日 20:29
  • 553KB
  • 下载

本地发布地图服务到远程Arcgis Server服务器流程及可能存在的几个问题

在本地或者服务器上安装Arcgis Server的方法我就不赘述了,但是有一点值得注意:在win10和某些系统上安装arcgis后,输入http://localhost:6080/arcgis/man...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:reference 变量的几个问题
举报原因:
原因补充:

(最多只允许输入30个字)