结构体变量存放内存中,也有起始地址,定义一个变量来存放这个地址,那这个变量就是结构体指针;
typedef struct mydata{int a1;int a2;int a3;
}mydata;void CJgtzzView::OnDraw(CDC* pDC)
{CJgtzzDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;mydata b;b.a1=101;b.a2=202;b.a3=303;mydata * a = &b;str1.Format("%d", a->a1);pDC->TextOut(50, 50, str1);str1.Format("%d", a->a2);pDC->TextOut(100, 50, str1);str1.Format("%d", a->a3);pDC->TextOut(150, 50, str1);int *c = (int*)&b;str1.Format("%d", *c);pDC->TextOut(50, 80, str1);str1.Format("%d", *(c+1));pDC->TextOut(100, 80, str1);str1.Format("%d", *(c+2));pDC->TextOut(150, 80, str1);
}
a是mydata类型的指针,a->a1、a->a2这样来访问成员;
后一种写法功能上是等价的;