#include "iostream"
#include "string"
using namespace std;
/************************************************************************/
/* 定义了一个结构体
b和c为实例变量名称 d为一个指针变量
可以直接通过 b和c去操作属性和方法
也可以定义个结构的实例变量 Point a的方式
*/
/************************************************************************/
struct Point{
public:
int x;
int y;
void sign(){
cout<<"location:x:"<<this->x<<",y:"<<this->y<<endl;
}
} b,c,*d;
/************************************************************************/
/* 定义类型的别名 */
/************************************************************************/
typedef Point PointW;
/************************************************************************/
/* 直接使用类型定义 定义了一个结构体PSize同时定义了一个别名 PSizeW */
/************************************************************************/
typedef struct PSize{
public:
int width;
int height;
void print(){
cout<<"Size:"<<width<<",height:"<<height<<endl;
}
} PSizeW,*PTRPSizeW;
void main(){
//直接通过类型来实例化
Point a;
a.x=1;
a.y=2;
a.sign();
//直接操作类型定义的变量
b.sign();
//定义别名的变量
PointW bb;
bb.sign();
//指针指向a
d=&a;
d->sign();
//实例化指针指向内存
Point* as=(Point*)malloc(sizeof(Point));
as->x=12;
as->y=24;
as->sign();
//使用结构变量实例
PSize ps;
ps.width=12;
ps.height=23;
ps.print();
//使用结构变量类型实例
PSizeW psw;
psw.width=12;
psw.height=23;
psw.print();
//这里PTRPSizeW 就是个指针 new出一片内存 ptr指向这片内存
PTRPSizeW ptr=(PTRPSizeW)malloc(sizeof(PTRPSizeW));
ptr->width=1;
ptr->height=2;
ptr->print();
//指针指向另一个指针
PTRPSizeW* ptr1=&ptr;
}