大家看下我猜的对不对噶..
#include <iostream>
using namespace std;
int main()
{
char *p[2]={"111111111111","555555555555"};
cout<<p<<endl;
cout<<p+1<<endl;
return 0;
}
输出看了结果 p和p+1 地址相差4位.. 编辑器是VC6.0++ 想问下p是不是int **类型的...
还有个问题就是字符串数组指针应该是二维数组来的吧? 比如char *p[2] 他可以保留2个平行关系的字符串..
[解决办法]
相差4是因为你那是指针数组,在32位系统上指针的长度是4,所以两个数据元素之间的距离是4
它就相当于 int p[2] = {1, 5}
如果你用 char p[2] = {1, 5} 距离就会是1
[解决办法]
p 是指针,指针占四个字节,所以差值为4。注意指针所占内存与指向数据所占内存大小的区别。