类型定义
typedef char * String;
结构体
struct UserClz { int id; String name; };
变量定义:
struct UserClz user ;
成员访问:
user.id=1;
user.name="zhangsan";
#include <stdio.h> void main(){ typedef char * String; struct UserClz { int id; String name; }; struct UserClz user ; user.id=1; user.name="zhangsan"; printf("%d\t,%s\n",user.id,user.name); }
结构体的指针变量
struct UserClz *p ;
访问成员:
*p.id p->id
#include <stdio.h> #include <stdlib.h> void main(){ typedef char * String; typedef struct UserClz User; struct UserClz { int id ; String name; }; User *p ; p=malloc(sizeof(User));//<span style="font-family: Arial; font-size: 14px; line-height: 26px; orphans: 2; widows: 2;">为指针变量分配安全的地址</span> p->id=10; p->name="张三"; printf("%d\t%s\n",p->id,p->name); }
结构体实现用户与角色关系
类图:
mycommon.h
enum boolean { false, true } status,flag; typedef char * String; typedef struct UserClz User; typedef struct RoleClz Role; typedef struct UserRoleClz UserRole; struct UserClz { int uid; String name; }; struct RoleClz { int rid; String roleName; }; struct UserRoleClz { int urid; User *pu; Role *pr; };
main.h
#include "mycommon.h" #include <stdlib.h> #include <stdio.h> void main(){ User *pu=malloc(sizeof(User)); Role *pr=malloc(sizeof(Role)); UserRole *pur=malloc(sizeof(UserRole)); pu->uid=1; pu->name="zhangsan"; pr->rid=2; pr->roleName="roleA"; pur->pu=pu; pur->pr=pr; printf("%s\t%s",pur->pu->name,pur->pr->roleName); }