鱼C论坛

 找回密码
 立即注册
查看: 2511|回复: 7

typedef

[复制链接]
发表于 2016-8-12 11:29:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
typedef struct
{
        int ban;
        char name[20];
        int num;
        float score[4];   
        float zong;

}Student;

typedef struct  Student
{
        int ban;
        char name[20];
        int num;
        float score[4];
        float zong;

}st;

两个分表代表什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-12 11:51:05 | 显示全部楼层
本帖最后由 patton88 于 2016-8-12 12:04 编辑
// 这个是重定义匿名结构体为Student
 typedef struct 
{
        int ban;
        char name[20];
        int num;
        float score[4];    
        float zong;

}Student;

// 这个是重定义命名结构体Student为st
typedef struct  Student
{
        int ban;
        char name[20];
        int num;
        float score[4];
        float zong;

}st;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-12 12:02:43 | 显示全部楼层
本帖最后由 patton88 于 2016-8-12 12:05 编辑
/*
typedef struct StudentB
{
        int ban;
        char name[20];
        int num;
        float score[4];
        float zong;
                
}st;*/

// 匿名结构体typedef只能一次性定义。而命名结构体typedef定义可以改写为两步
struct StudentB
{
        int ban;
        char name[20];
        int num;
        float score[4];
        float zong;
                
};

typedef StudentB st;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-12 12:17:28 | 显示全部楼层
typedef struct
{
        int ban;
        char name[20];
        int num;
        float score[4];   
        float zong;

}Student;/*        一个没有本名的结构体,但有一个别名 Student  可以直接用 Student tmp ;这样来创建一个结构体变量        */

typedef struct  Student
{
        int ban;
        char name[20];
        int num;
        float score[4];
        float zong;

}st;/*  一个有本名,也有别名的结构体,可以   struct Student   tmp;   或者   st  tmp; 这种两种方式来创建变量*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2016-8-12 15:09:47 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-8-13 10:27:19 | 显示全部楼层
陌雨 发表于 2016-8-12 12:17
typedef struct
{
        int ban;

比如第一个我用Student * p
第二个我用st * p

这两个一样么? 第一个是不是错了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-13 17:49:40 | 显示全部楼层

刚好是我不会的问题,虽然不能给楼主解答,但是看到你们发的帖子,也学习到了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-16 14:30:42 | 显示全部楼层
学习电脑 发表于 2016-8-13 10:27
比如第一个我用Student * p
第二个我用st * p

晕 没注意最后还有一句 代码  ’ypedef struct StudentB st;’ 但是写错了 ,应该是 typedef struct StudentB st ,要加一个 struct ;

再来回答你的问题:
第一个没错,因为它的别名是 Student  你可以用这个别名定义一个指针变量;
第二个 可以用 struct Student ,也可以用 st定义指针变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-5 00:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表