菜鸟笔记:今天才知道string也可以有数组

如下:

string a[5]={"abc","def","q","zx","ertty"};
string b[5] = { "abcdefghijklmnopqrstuvwxyzzzzzzzzzzzzzz","def","q","zx","ert" };
char c[5] = { 'a','b','c','d','e'};

如上,经我调试发现,a[0],a[1],a[2]的地址都差了28个字节,

同样,b[0],b[1],b[2]的地址也都差了28个字节,c[0],c[1],c[2]的地址差1个字节。

a[0][0]会在a[0]的地址上加2,然后每多一个字符,地址加1;但是b[0][0],b[0][1]就不一样了,他们好像在另外一段内存上,所以我推断,当字符串小于等于26个的时候会&x[0][0]=&x[0]+2,然后后面每个字符依次加1,但当字符串大于28个的时候x[0],x[1]的地址仍然差28个,但是x[0][0]到之后很多个的地址会在另外一块内存上。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值