C语言结构体指针

图中++pt–>x是有优先级还是其他的
2024-12-02 16:35:07
推荐回答(2个)
回答1:

->的优先级高于++,

所以++pt–>x,是把x的值加1

回答2:

typedef 是重定义的意思,这里表示HuffmanCode是一个char**类型的代名词。
char*可以理解为指向一个字符串第一个字符的指针。
char**可以理解为字符串数组,
char **a = new char* [10];
for (int i = 0; i < 10; i++) a[i] = new char [30];
这就创建了一个a,a[n]代表第n+1个字符串,a[n][m]表示第n+1个字符串的第m+1个字符。
typedef struct
{
unsigned int weight;
unsigned int parent,lchild,rchild;
} HTNode,*HuffmanTree;
是用HTNode表示这个结构体,HuffmanTree表示这个结构体的指针类型。这样使用HTNode 定义的变量是结构体类型(空间为4*int=16),而用HuffmanTree定义的是可以指向这种结构体的指针(空间为long=4),HuffmanTree与HTNode*等价。
HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode))
HT=(HTNode*)malloc((m+1)*sizeof(HTNode))
下面是调用的例子:
HTNode a;
HuffmanTree b;
a.lchild=0;
b=&a;
b->lchild=0;
calloc也用于动态分配内存,和malloc稍有区别,百度你就知道。