gpt4 book ai didi

c - 代表一个指针

转载 作者:太空狗 更新时间:2023-10-29 16:10:14 25 4
gpt4 key购买 nike

如果 ListofChar 是指向 Char 的指针(不要与 char 混淆),表示 struct charact
那么 void report(ListofChars) 中的 ListofChars 是什么意思?
chars 是否只是代表指针ListofChar

#include <stdio.h>
#include <stlib.h>

struct charact {
char ch;
int occurs;
struct charact *next;
};

typedef struct charact Char;
typedef Char * ListofChar;
typedef Char * CharNode_ptr;

void letters(char name[50], ListofChar * chars_ptr);
void report(ListofChar chars);
Char * createnode(char ch);

int main() {
char name[50];
ListofChar chars = NULL;
scanf("%s", name);
letters(name, &chars);
report(chars);
return 0;
}
Char * createnode(char ch) {
CharNode_ptr newnode_ptr ;
newnode_ptr = malloc(sizeof (Char));
newnode_ptr -> ch = ch;
newnode_ptr -> occurs = 0;
newnode_ptr -> next = NULL;
return newnode_ptr;
}

最佳答案

是也不是。
似乎代码是为了暗示“一个字符”和“多个字符”的区别而编写的。

类似于:

Char 是一个,一个单一的结构。
ListOfChar 本身是指向单个 Char 的指针,但它暗示后面还有更多字符。通过某种方式识别最后一个,这允许一个函数在多个上工作,只有一个参数。即使没有立即知道有多少。

还有另一个类似的构造,您没有在问题中提及它,除了显示代码中未使用的声明之外,CharNode_ptr。如果你允许一些纯粹的猜测,我猜想上面的“更多后续”在其余代码中作为链表实现。
这里的含义略有不同(或者只是更详细),它建议您通过在每个结构内点击链接 next 找到“其他”字符的额外细节,前提是它不是 NULL。< br/>当使用 ListOfChar 类型标识符时,编写代码很可能不暗示此细节,例如在函数的 API(显示的原型(prototype))中。

类似于:

ListofChar 表示:
“嘿,用户,别担心,它不止一个;但你不需要知道到底是多少。”

CharNode_ptr 表示:
“嘿程序员,记住你正在处理链表。”

关于c - 代表一个指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50168299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com