初学者提问:关于嵌套结构体成员访问的问题

hard00work 2004-05-04 06:48:41


如以下的结构中,如何通过变量名pra访问嵌套结构中的变量a;
struct Type
{
struct subType
{
type1 a;
type2 b;
}subPra;
}pra;

pra.subPra.a为什么是错的



...全文
84 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
积木 2004-05-05
你用TC2.0试试?呵呵
  • 打赏
  • 举报
回复
alanzhu 2004-05-04
我这事过了,在gcc下可以这样调用阿
#include <stdio.h>

struct Type
{
struct subType
{
type1 a;
type2 b;
}subPra;
}pra;


int main()
{
pra.subPra.a=1;
printf("%d",pra.subPra.a);
return 0;
}
  • 打赏
  • 举报
回复
tangxiaosan001 2004-05-04
其实vc6.0他里面就兼容了c++
  • 打赏
  • 举报
回复
fireinsky 2004-05-04
可是我在VC6。0下就可能正常运行呀,你试试这个:
#include <iostream>

struct a
{
struct b
{
int c;
}pre;
}prea;

void main()
{
prea.pre.c = 6;
std::cout << prea.pre.c << std::endl;
}
  • 打赏
  • 举报
回复
积木 2004-05-04
说点题外话:
在C++中这种嵌套定义是可以的,因为嵌套类的成员在外围类对象的生命周期内都是
都是存在的例如如下的代码
#include<stdio.h>
struct base
{
struct sub
{
int i;
} s;
};
int main()
{
base b;
b.s.i = 1;
printf("%d",b.s.i);
return 0;
}
这种设计的好处在于它隐藏了struct sub的实现。
如果仅仅用C的话就用楼上的吧
  • 打赏
  • 举报
回复
cngdzhang 2004-05-04
struct不可以嵌套定义吧?

但是
可以这样:
struct subType
{
type1 a;
type2 b;
};

struct Type
{
struct subType subPra;
}pra;

这样pra.subPra.a是没有问题的

  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-04 06:48
社区公告
暂无公告