#include <stdlib.h>
#include <iostream>
using namespace std;
struct mst
{
int *a;
double f;
int *b;
int *c;
};
int main()
{
mst st;
int array1[2]={1,2};
int array2[3]={3,4,5};
int array3[2]={6,7};
st.a=array1;
st.b=array2;
st.c=array3;
int **addr=(int**)&st;
cout<<addr[0][1]<<endl;
cout<<addr[4][0]<<endl;
cout<<"of="<<offsetof(mst,f)<<endl; //8
cout<<"ob="<<offsetof(mst,b)<<endl; //16
cout<<"oc="<<offsetof(mst,c)<<endl; //20*/
system("pause");
return 0;
}
#include <iostream>
using namespace std;
struct mst
{
int *a;
double f;
int *b;
int *c;
};
int main()
{
mst st;
int array1[2]={1,2};
int array2[3]={3,4,5};
int array3[2]={6,7};
st.a=array1;
st.b=array2;
st.c=array3;
int **addr=(int**)&st;
cout<<addr[0][1]<<endl;
cout<<addr[4][0]<<endl;
cout<<addr[5][1]<<endl;
//计算结构体成员在偏移量
cout<<"of="<<offsetof(mst,f)<<endl; //8
cout<<"ob="<<offsetof(mst,b)<<endl; //16
cout<<"oc="<<offsetof(mst,c)<<endl; //20*/
system("pause");
return 0;
}
//由此可判断,二维指针和二维数组性质差异很大。