C中的代码不清楚,如果有人向我解释,将不胜感激

时间:2013-01-15 15:15:41

标签: c arrays string struct

#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家伙!

2 个答案:

答案 0 :(得分:3)

你应该玩cdecl,这有助于解析这样的事情。

如果用MAX_WORD_LEN+1表达式(例如11)替换数字,则表示:

  

将dict0声明为char

的数组11的指针

这就是代码的含义;它将dict0声明为指向大小为char的{​​{1}}数组的指针,即11。

答案 1 :(得分:2)

char (*dict0)[MAX_WORD_LEN + 1];

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

此外,如果您没有cdecl等C声明解析器,您仍然可以使用this simple rule of thumb来理解复杂类型。