c++ string和const char*在内存中的地址

int main()
{
   const char *p = "str";
   string s = "str";
   int a = 10;

   cout << "str:" << (&"str") << endl;
   printf( "p  :0x%0x\n", p);
   cout << "s  :" << (&s) << endl;
   cout << "a  :" << (&a) << endl;

   return 0;

}
str:0x4b8002
p  :0x4b8002
s  :0x79fdd0
a  :0x79fdcc

可以看到,str这个常量字符串和const char*指的位置是一样的,都在内存的.rodata区。
而字符串s和局部变量a都是在栈上分配地址的,string并不存储在字符串常量区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值