关于引用的讨论
 
《C++ Primer》中说引用有固定的大小,而与其指向的对象的大小无关。
但是在VC中跑了一下,却不是这样比如:sizeof(char &) = 1; 而sizeof(int &) = 4
是理解有误还是由于编译器的原因呢?
 
对于引用类型,sizeof返回的是被引用类型的size(否则没有办法得到),不是
引用本身所占的存储空间。
 
引用本身不占空间
 
效果上可以这么说,但具体实现当然不是这样的
两者还是有些不同的,看成const pointer更接近一些
 
“引用”本身不是个类型。
 
虽然没有规定,但我见过的C++编译器里面,引用就是用指针实现的。
事实上引用和指针的区别,只在于语法不一样。
 
呵呵,C语言里并没有引用,但C语言中也一样能够做到任何引用能够做到的事
——通过指针(普通指针或函数指针),从这个意义上来说引用是一个语法糖,
能够避免新手少写取址运算符这样的错误(比如在scanf()里),以及可以少写很
多长长的左值。
 
引用是指针的阴魂,是pointer的语法糖(syntax sugar),为了避免使用*\->\&之类的
东西,让语言看上去就像没有指针,所以发明了引用,works like pointer, looks like
no-pointer,所以引用要尽量装得不像本体那样,所以sizeof很好解释
sizeof(T) == sizeof(T&)

一些语言号称没有指针,如Java和C#,其实里面都是引用