首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于摘引的大小 求指教!

2013-03-06 
关于引用的大小 求指教!!!#includestring#includeiostreamint main{std::string b1asdasdasdasdasda

关于引用的大小 求指教!!!


#include<string>
#include<iostream>
int main
{
std::string b1="asdasdasdasdasdasd";
std::string &b_1=b1;
std::cout<<sizeof(b1)<<std::endl;
std::cout<<sizeof(b_1)<<std::endl;
return 1;
}


得到的值相同,我想知道,引用不是加了const的指针吗,那么大小为什么不是4字节???
[解决办法]
引用除了语法不同,和指针是一样的。C++提供了对指针进行操作的语法,但是没有对引用进行操作的语法。对引用的所有语法都传递到所引用的变量上,没有办法对引用本身进行操作。

sizeof和operator++一样都是操作符。
int a=1;
int& ra=a;
int b=++ra;

如果这里你能理解++ra是对a的操作,而不是对ra自己的操作,就不难理解sizeof(ra)也是对a的操作了。

也可以这么看,sizeof(ra)实际上就是sizeof(*pa),pa是编译器用来表示ra的指针。这个结果当然不会是sizeof(pa)了。因为pa是编译器内部产生的,外部看不到,所以没办法直接进行操作,但是这个指针还是存在的。

热点排行