问一个有关类型定义的问题

sysabod 2009-01-11 09:37:21
typedef struct student
{int age,sex;
char* name;
}Stu;
typedef struct
{int age,sex;
char* name;
}Stu;
我想问一下大家,上面的两种写法的含义,作用是否一样,Stu是不是可以当做这个结构体的别名
如Stu s1定义声明一个变量s,谢谢
...全文
92 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
waizqfor 2009-01-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 sysabod 的帖子:]
C/C++ codetypedef struct student
{int age,sex;
char* name;
}Stu;
typedef struct
{int age,sex;
char* name;
}Stu;


我想问一下大家,上面的两种写法的含义,作用是否一样,Stu是不是可以当做这个结构体的别名
如Stu s1定义声明一个变量s,谢谢
[/Quote]
typedef struct这代表自定义结构体 Stu是结构体类型名 跟上面定义得一样
flydream1980 2009-01-11
  • 打赏
  • 举报
回复
主要区别我觉的是这样的
typedef struct Node
{
KeyType data;
struct Node * lchild;
struct Node * rchild;
} * BiTree ,BiTnode;


里面要定义指向结构的指针,就不能省略.

要是不定义指针就可以
flydream1980 2009-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ljmscsq 的回复:]
应该可以吧

C/C++ code
#include <iostream>
using namespace std;

typedef struct
{int age,sex;
char* name; // 这里是错误的, 没分配空间 char name[50]; 或在外面动态分配内存
}Stu;

int main()
{
Stu s;
s.age=16;
s.sex=1;
strcpy(s.name,"hello");
cout<<s.name<<" "<<s.age<<" "<<s.sex<<endl;
return 0;
}




我运行了下,能用。
[/Quote]
sysabod 2009-01-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 arong1234 的回复:]
这不就是typedef的原本意义么?楼主对这也有疑问?
引用楼主 sysabod 的帖子:
C/C++ codetypedef struct student
{int age,sex;
char* name;
}Stu;
typedef struct
{int age,sex;
char* name;
}Stu;


我想问一下大家,上面的两种写法的含义,作用是否一样,Stu是不是可以当做这个结构体的别名
如Stu s1定义声明一个变量s,谢谢
[/Quote]也就是说有无那个student都可以
arong1234 2009-01-11
  • 打赏
  • 举报
回复
这不就是typedef的原本意义么?楼主对这也有疑问?
[Quote=引用楼主 sysabod 的帖子:]
C/C++ codetypedef struct student
{int age,sex;
char* name;
}Stu;
typedef struct
{int age,sex;
char* name;
}Stu;


我想问一下大家,上面的两种写法的含义,作用是否一样,Stu是不是可以当做这个结构体的别名
如Stu s1定义声明一个变量s,谢谢
[/Quote]
ljmscsq 2009-01-11
  • 打赏
  • 举报
回复
应该可以吧

#include <iostream>
using namespace std;

typedef struct
{int age,sex;
char* name;
}Stu;

int main()
{
Stu s;
s.age=16;
s.sex=1;
strcpy(s.name,"hello");
cout<<s.name<<" "<<s.age<<" "<<s.sex<<endl;
return 0;
}


我运行了下,能用。
ljmscsq 2009-01-11
  • 打赏
  • 举报
回复
谢谢flydream1980提醒 ,疏忽了
china_west 2009-01-11
  • 打赏
  • 举报
回复
能用就好
Trust_haitao365 2009-01-11
  • 打赏
  • 举报
回复
上面两种写法的含义一样,Stu就是这个结构体的别名。
Stu s
能定义声明变量s.

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧