基础问题:关于一维数组和二维数组的问题!
我看书中说:一维数组:
char a[10];
*(a+1);//访问第二个元素
这个可以理解为a就是地址
可是我看二维数组:
char a[10][10];
*(*a+1);
为什么a前要加一个*啊? 难道是二维的和一维的不一样? 小弟新手 谢谢!
[解决办法]
char a[10][10];//可以看成由十个一维数组组成
*(*a+1);//*a得到第一个第一维的地址。。。再这个地址上+1得到第一个一维的第二个元素
[解决办法]
*(*a+1);
等价于*(a[0] + 1 )
等价于a[0][1]
[解决办法]
每个指针解引用星号*对应一个数组索引方括号[]
[解决办法]
2楼正解!
[解决办法]
char a[10];
*(a+1);//访问第二个元素 ||| *a就是a[0]
这个可以理解为a就是地址
可是我看二维数组:
char a[10][10];
*(*a+1);
*a就是a[0]
*(a[0]+1)就是a[0][1]
[解决办法]