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

hard00work 2004-05-04 06:48:41


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

pra.subPra.a为什么是错的



...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
积木 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是没有问题的

69,371

社区成员

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

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