注册 登录
编程论坛 C图形专区

该如何创建结构体?

ba_wang_mao 发布于 2007-10-31 10:22, 1081 次点击
我现在想描述两种及两种心上的商品,需要设定结构体
1、结构体中有指向参数中文名称 首地址的指针(双重指针)
2、结构体中有指向参数值    首地址的指针
3、结构体中有指向参数单位名称 首地址的指针(双重指针)

/////////////////////
第一种商品
/////////////////////
char *chinese_name1[5] = //设定参数的中文名称
"拖拉机",
"推土机",
"小汽车",
"吉普车",
"公共车"};
char *unit1_name1[5] = { // 单位名称
" 辆",
" 辆",
" 辆",
" 辆",
" 辆"};
int number_array1[5] = {1,2,3,4,5}; //设定的参数值

/////////////////////
第二种商品
/////////////////////
char *CHINESE_NAME2[3] = //设定参数的中文名称
"钢笔",
"铅笔",
"笔记本"};
char *UNIT_NAME2[3] = { // 单位名称
" 支",
" 支",
" 本"};
int NUMBER_ARRAY2[3] = {2,2,5}; //设定的参数值

我是如下定义结构体的
typedef struct set_struct
{
char **chinese_name; // 参数的中文名称
int *number; // 参数值
char **unit; // 单位
}SET_STRUCT,*SET_STRUCT_PTR;

SET_STRUCT AA[5];
SET_STRUCT BB[3];
for (i = 0; i < 5; i++)
{
AA[i].name = chinese_name1;//指向指针的指针
AA[i].unit = unit1_name1;//指向指针的指针
AA[i].number = number_array1;//指向指针
}
for (i = 0; i < 3; i++)
{
BB[i].name = CHINESE_NAME2;//指向指针的指针
BB[i].unit = UNIT_NAME2;//指向指针的指针
BB[i].number = NUMBER_ARRAY2;//指向指针
}
我定义的结构体也能完成需要,但是太罗嗦,因为第一种、第二种商品
的中文名称及单位名称只需要指一次首地址即可,无需每次赋值时都指,
很容易造成混淆,有没有更好的方法?

如果设定第一种商品时,弹出的是一个下拉列表,又需要指向一个字符串中文名称数组,而设定第二种商品时,只是简单的修改参数值,这种情况下需要使用“联合体”,又该如何描述呢?



1 回复
#2
jig2007-11-02 09:54
LZ是规定一定要指针吗?
1