关于摘引的大小 求指教!
关于引用的大小 求指教!!!#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是编译器内部产生的,外部看不到,所以没办法直接进行操作,但是这个指针还是存在的。