该如何创建结构体?
我现在想描述两种及两种心上的商品,需要设定结构体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;//指向指针
}
我定义的结构体也能完成需要,但是太罗嗦,因为第一种、第二种商品
的中文名称及单位名称只需要指一次首地址即可,无需每次赋值时都指,
很容易造成混淆,有没有更好的方法?
如果设定第一种商品时,弹出的是一个下拉列表,又需要指向一个字符串中文名称数组,而设定第二种商品时,只是简单的修改参数值,这种情况下需要使用“联合体”,又该如何描述呢?