在c里面,a结构体和b结构体里面互相有一个指向对方的指针,请问如何定义,谢谢

firnwolf 2004-10-24 08:51:45
在c里面,a结构体和b结构体里面互相有一个指向对方的指针,请问如何定义,谢谢
...全文
134 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
firnwolf 2004-10-25
  • 打赏
  • 举报
回复
多谢各位
carylin 2004-10-25
  • 打赏
  • 举报
回复
struct A; //前向声明

struct B
{
struct A *pa;
int m;
};
struct A
{
int m;
struct B *pb;
};
dog_in_yellow 2004-10-25
  • 打赏
  • 举报
回复
真的,试试看,我本也以为要先前向声明的, 就像freefalcon(心宇—小小菜鸟想高飞) 写的那样,后来把前向声明去掉再编译看看,竟然也可以。
tian930 2004-10-24
  • 打赏
  • 举报
回复
学习~~
呵呵~~
lynnboy 2004-10-24
  • 打赏
  • 举报
回复
我刚用vc编译竟然不先前向声明也可以的,奇怪
真的假的?我没试过
diandian82 2004-10-24
  • 打赏
  • 举报
回复
It's really amazing!
dog_in_yellow 2004-10-24
  • 打赏
  • 举报
回复
我刚用vc编译竟然不先前向声明也可以的,奇怪
hikuers 2004-10-24
  • 打赏
  • 举报
回复
我来ding
  • 打赏
  • 举报
回复
9494
o1n 2004-10-24
  • 打赏
  • 举报
回复
来晚了。他们已经回答的非常好了。
kobefly 2004-10-24
  • 打赏
  • 举报
回复
其实这个并没有什么神秘和高深得
就是
要记得前向声明一下就可以了
心宇正解
freefalcon 2004-10-24
  • 打赏
  • 举报
回复
先声明,然后直接定义即可,如下
struct BB; // 前向声明BB
struct AA
{
struct BB* pb;
};

struct BB
{
struct AA* pa; // AA前面已经出现了,所以无需声明,如果BB与AA不在同一个文件,那么也得先声明AA,或者包含AA的头文件
};

但在使用pa和pb时,AA和BB的定义必须都已给出
dog_in_yellow 2004-10-24
  • 打赏
  • 举报
回复
这样的吗
struct B
{
struct A *pa;
int m;
};
struct A
{
int m;
struct B *pb;
};

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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