| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 764 人关注过本帖
标题:c语言中结构体的问题
只看楼主 加入收藏
weiyilk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-11-25
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
c语言中结构体的问题


struct Table2
{
    char name[NodeSize];    //信号名
    float p;                //確率
    int fan_out;            //fan out数
    int F_PT;               //fan outテーブルのポインター      
    int PT;                 //同じハッシュ値の信号名のポインター
    int step;               //段数
}SignalTB[NodeNMAX];

Table2是这个结构体的名字
里面那些 name,p,fan_out,F_PT 都是结构体里面的成员
请问最下面那个SignalTB[NodeNMAX] 是什么意思
搜索更多相关主题的帖子: c语言 结构体 
2011-12-01 09:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
SignalTB是元素为这个结构体的数组,元素数目为NodeNMAX。

授人以渔,不授人以鱼。
2011-12-01 09:49
weiyilk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-11-25
收藏
得分:0 
回复 2楼 TonyDeng
是不是可以这么理解
他又定义了一个和Table2一模一样的构造体,只是名字改成了signalTB。
就像下面那样
struct SignalTB
{
    char name[NodeSize];    //信号名
    float p;                //確率
    int fan_out;            //fan out数
    int F_PT;               //fan outテーブルのポインター      
    int PT;                 //同じハッシュ値の信号名のポインター
    int step;               //段数
}
2011-12-01 09:54
weiyilk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-11-25
收藏
得分:0 
回复 2楼 TonyDeng
补充一下
前面还有个

#define NodeNMAX 100

struct Table2
{
    char name[NodeSize];    //信号名
    float p;                //確率
    int fan_out;            //fan out数
    int F_PT;               //fan outテーブルのポインター      
    int PT;                 //同じハッシュ値の信号名のポインター
    int step;               //段数
}SignalTB[NodeNMAX];

2011-12-01 10:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不是,是一个数组,类似如下定义:
Table2 SignalTB[100];

当没有使用typedef的时候,Table2不是数据类型名,所以SignalTB变量定义必须紧接在结构声明后,意思指变量的数据类型是前面所声明的那个样子。

[ 本帖最后由 TonyDeng 于 2011-12-1 10:26 编辑 ]

授人以渔,不授人以鱼。
2011-12-01 10:14
我不是大虾
Rank: 2
等 级:论坛游民
帖 子:38
专家分:29
注 册:2011-10-26
收藏
得分:0 
NodeNMAX 这应该是宏定义吧,用它代替某个常数
2011-12-01 10:22
weiyilk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-11-25
收藏
得分:0 
回复 5楼 TonyDeng
还想一个问题

能给我具体讲讲什么叫 “结构体类型变量 ”
2011-12-01 10:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
int和double这样的东西其实就是结构体。对某些编译器来说,int是16bit的,有些是32bit的,即是由2byte或4byte组成的结构体:

typedef struct _int {
    char low;    // 低位字节
    char high;   // 高位字节
} int;
int x;

在你这里,Table2是一个新的数据类型,它是由里面所列出的一系列数据排列构成,是一个集合体。而SignalTB数组中的每个元素,比如SignalTB[0],是一个Table2的数据类型,就是那一块数整合在一起。SignalTB[100],有100个这样的数。
收到的鲜花
  • weiyilk2011-12-01 10:42 送鲜花  3朵  

授人以渔,不授人以鱼。
2011-12-01 10:36
weiyilk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-11-25
收藏
得分:0 
回复 8楼 TonyDeng
豁然开朗 非常感谢!
2011-12-01 10:42
快速回复:c语言中结构体的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016566 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved