#include <iostream>
using namespace std;
void print(int * a)
{
cout<<*a<<endl;
}
int main()
{
int a[3][4] =
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
//下面5中方法都能表示a[1][1]
cout<<*(&a[1][1])<<endl;
cout<<*(&a[0][0] + 5)<<endl;
cout<<*(*(a+1) + 1)<<endl;
cout<<*(*a + 5)<<endl;
cout<<*(a[1] + 1) <<endl;
//下面3个地址都是0X0012FF50,但是类型却不一样
cout<<a<<endl;//int [3][4] 指向二维数组
cout<<a[0]<<endl;//int [4] 指向一维数组,可以和下面的指针互传值
cout<<&a[0][0]<<endl;//int * 指向一维数组首元素
//a == a[0]; 有错误
int (*p)[4];//p为行指针
p == a;//正确
p == a + 1;//正确
return 0;
}
更多请见:
http://blog.youkuaiyun.com/PEPSI_COLA/archive/2007/05/21/1618709.aspx
http://blog.youkuaiyun.com/Thinkred/archive/2005/12/21/557768.aspx
http://blog.youkuaiyun.com/csufuyi/archive/2007/01/20/1488306.aspx
http://blog.youkuaiyun.com/iu_81/archive/2007/09/12/1782642.aspx
http://blog.youkuaiyun.com/zhmili/archive/2007/08/13/1740357.aspx
using namespace std;
void print(int * a)
{
cout<<*a<<endl;
}
int main()
{
int a[3][4] =
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
//下面5中方法都能表示a[1][1]
cout<<*(&a[1][1])<<endl;
cout<<*(&a[0][0] + 5)<<endl;
cout<<*(*(a+1) + 1)<<endl;
cout<<*(*a + 5)<<endl;
cout<<*(a[1] + 1) <<endl;
//下面3个地址都是0X0012FF50,但是类型却不一样
cout<<a<<endl;//int [3][4] 指向二维数组
cout<<a[0]<<endl;//int [4] 指向一维数组,可以和下面的指针互传值
cout<<&a[0][0]<<endl;//int * 指向一维数组首元素
//a == a[0]; 有错误
int (*p)[4];//p为行指针
p == a;//正确
p == a + 1;//正确
return 0;
}
更多请见:
http://blog.youkuaiyun.com/PEPSI_COLA/archive/2007/05/21/1618709.aspx
http://blog.youkuaiyun.com/Thinkred/archive/2005/12/21/557768.aspx
http://blog.youkuaiyun.com/csufuyi/archive/2007/01/20/1488306.aspx
http://blog.youkuaiyun.com/iu_81/archive/2007/09/12/1782642.aspx
http://blog.youkuaiyun.com/zhmili/archive/2007/08/13/1740357.aspx