在C语言中处理结构

在C语言中处理结构,c,data-structures,struct,C,Data Structures,Struct,假设struct\u name是我定义的结构的名称,而array是定义为char array[o] 以下生产线生产什么(*struct_name).array 地址和地点 是(假设struct_name是指向结构的指针,否则取消引用就没有意义了) 顺便说一句,为什么不将struct_name->array?定义为struct的实例,如下所示: struct your_struct struct_name; struct your_struct *struct_name; struct_name

假设
struct\u name
是我定义的结构的名称,而array是定义为
char array[o]

以下生产线生产什么<代码>(*struct_name).array 地址和地点

是(假设struct_name是指向结构的指针,否则取消引用就没有意义了)


顺便说一句,为什么不将struct_name->array?

定义为struct的实例,如下所示:

struct your_struct struct_name;
struct your_struct *struct_name;
struct_name = malloc(sizeof(struct your_struct));
typedef struct _struct_name {
    char array[5];
} struct_name;
您需要
struct\u name.array
,它可以生成
array
成员的地址。如果已将
struct\u name
定义为结构的实例,如下所示:

struct your_struct struct_name;
struct your_struct *struct_name;
struct_name = malloc(sizeof(struct your_struct));
typedef struct _struct_name {
    char array[5];
} struct_name;
您需要
struct\u name->array
,它还返回
array
的地址


如果已将
struct\u name
定义为结构本身的名称,如下所示:

struct your_struct struct_name;
struct your_struct *struct_name;
struct_name = malloc(sizeof(struct your_struct));
typedef struct _struct_name {
    char array[5];
} struct_name;

那你就不知道你想要什么了。

array[o]是一种黑客手段……也许这是一种非常有用的手段:)这真的是array[o]还是array[0]?(即零,而不是标识符“字母oh”)。如果后一个“o”对于标识符来说是一个非常糟糕的名称。另外,与其描述代码“假设…”,为什么不直接发布代码,这样我们就不需要“假设”任何东西了?