2

我对 undcl 的工作方式感到困惑。这是 K&R 书中给出的代码

....
int main()
{
    int type;
    char temp[MAXTOKEN];

    while(gettoken() != EOF) {
        strcpy(out, token);
        while((type = gettoken()) != '\n')
        if(type == PARENS || type == BRACKETS)
            strcat(out, token);
        else if (type == '*') {
            sprintf(temp, "(*%s)",out);
            strcpy(out, temp);
        } else if (type == NAME) {
            sprintf(temp, "%s %s", token, out);
            strcpy(out, temp);
        } else
            printf("invalid input at %s\n",token);
}
    return 0;
}
....

我想在这里输入什么?我尝试在输入中输入单词到单词的声明,但它似乎不起作用

例如,我运行程序并输入以下内容:

argv: 指向 char 的指针

它只显示“argv 处的无效输入”错误

4

1 回答 1

1

这本书为您提供了一个它将在代码上方立即接受的输入示例,即:

x () * [] * () char

这是“一种缩写的输入语法”,意思是“x 是一个函数,它返回一个指向返回 char 的函数的指针数组的指针。”

尝试输入,你应该得到以下输出:

char (*(*x())[])()
于 2013-06-23T02:05:45.633 回答