首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

C51指针定义及应用-2

C51指针定义及应用-2

四. 指针与结构体



  • Typedef Struct _data_str {

    Unsigned Int DATA1[10];

    Unsigned Int DATA2[10];

    Unsigned Int DATA3[10];

    Unsigned Int DATA4[10];

    Unsigned Int DATA5[10];

    Unsigned Int DATA6[10];

    Unsigned Int DATA7[10];

    Unsigned Int DATA8[10];

    }DATA_STR;

    //开辟一个外RAM空间,确保这个空间够装你所需要的

    Xdata Uchar My_data[MAX_STR] _at_ 0x0000;

    DATA_STR *My_Str;

    My_Str=(DATA_STR*)My_data; //把你的结构体指针指向这个数组的开头

    以后的操作就这样:

    My_Str->DATA1[0]=Xxx;

    My_Str->DATA1[1]=Xxx;

    那么你的变量就自然放到XDATA中去了.

    注意定义的My_data[MAX_STR],不能随便被操作,它只是开始的时候用来开辟内存用的.


  • Struct Student

    {

    Char Name[20];

    Int Num;

    }Stu1,Stu2;


  • Struct Student

    {

    Char Name[20];

    Int Num;

    };

    Struct Student Stu1,Stu2;

    Struct Student *P;

    P=&Stu1;

    访问成员方法:

    A. Stu1.Num

    B. (*P).Num; //因为“.”的优先级高于“*”所以要加括号。

    C. P->Num;


  • Struct Student Stu[10];

    Struct Student * P;

    P=Stu;
返回列表