-4
#ifndef HW4Q2_H_INCLUDED
#define HW4Q2_H_INCLUDED
#define MAX_WORD_LEN 10

struct dict{
    int len;
    char (*dict0)[MAX_WORD_LEN+1];
    char (*dict1)[MAX_WORD_LEN+1];
};

void translate(char* currWord, char* newWord, struct dict* myDict, int lang);
void createDict(struct dict* myDict);
void destroyDict(struct dict* myDict);

#endif

我在c中有作业,我们有这个头文件..但是“char (*dict0)[MAX_WORD_LEN+1];”是什么意思?方法?我以前从未见过这个..有没有等效的方法来写它?请解释一下!我绝望了 :( 10q 伙计们!

4

2 回答 2

3

您应该使用cdecl,它有助于解析这样的事情。

如果你用一个数字代替MAX_WORD_LEN+1表达式(例如 11),它会说:

将 dict0 声明为指向 char 数组 11 的指针

这就是该代码的含义;它声明dict0为指向char大小为 11 的数组的指针MAX_WORD_LEN + 1

于 2013-01-15T15:18:27.873 回答
2
char (*dict0)[MAX_WORD_LEN + 1];

此代码声明dict0为指向大小为 char 数组的指针MAX_WORD_LEN + 1

此外,如果您没有 C 声明解析器,例如cdecl,您仍然可以使用这个简单的经验法则来理解复杂类型。

于 2013-01-15T15:18:13.540 回答