donghejk
太过平凡的小蚂蚁
采纳率26.9%
2015-03-20 04:38

数据结构顺序表 求指教!

已采纳

1.typedef struct{
char* stuNo;
char* stuName;
char* stuSex;
int mathScore;
int chinScoee;
}DataType;

2.typedef struct{
DataType *data; //一维数组data用于存放表节点
int length; //线性表当前的长度
}SeqList;

1中的DataType和2中的SeqList意思一样吗?
不一样的话分别代表什么意思?
谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • luoops luoops 6年前

    代表的类型就是你定义的结构体,结构体也是一种类型。
    typedef struct{
    char* stuNo;
    char* stuName;
    char* stuSex;
    int mathScore;
    int chinScoee;
    }DataType;

    DataType a; //a就是结构体的一个学生,你可以给他赋值

    a.stuNo =“01”;//学号1号
    a.stuName = "张三";//名字张三
    a.stuSex =“男”;//性别男
    a.mathScore = 100; //数学100
    a.chainScore = 0; //语文0蛋

    其实如果有些东西理解不到不用这么深究,先记住,多写代码,代码写多了很多东西自然就懂了,个人感受!

    点赞 评论 复制链接分享
  • luoops luoops 6年前

    typedef语法:
    typedef 类型名称 类型标识符;
    类型名称:系统类型或者用户自定义类型
    类型标识符:新的类型名称

    所以在你的代码中,DataType和SeqList既是结构体名又表示两种数据类型。
    作用:
    int a; //表示声明一个整形变量
    DataType a; //声明一个结构体

    点赞 评论 复制链接分享
  • luoops luoops 6年前

    不太明白你问的哪方面不一样,按我理解解答下:
    typedef struct node {
    int a;
    /*在这个时候如果想使用node结构体就必须用struct node来声明,因为typedef还没生效*/
    struct node *next;
    }NODE;

    void main(void)
    {
    /*这里就可以用NODE来代替struct node声明这个结构体*/
    NODE *b = NULL;
    }

    所以,回到你的问题,DataType和SeqList表示两个不同的结构体.

    点赞 评论 复制链接分享
  • u010076999 灬江湖雨灬 6年前

    不一样。typedef是C语言的一种机制,其为后面的数据结构定义新名字,这只是一种声明,编译器并不会在内存中为DataType和SeqList分配存储空间。1中的DataType和2中的SeqList就相当于基本数据类型中的int、float,你可以用它们分别去定义不同结构体类型的变量。譬如,
    DataType new_struct; /*定义了一个类型为DataType的变量new_struct*/

    点赞 评论 复制链接分享

相关推荐