如下:
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]到之后很多个的地址会在另外一块内存上。