#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家伙!
答案 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来理解复杂类型。