c语言-struct {}a,*p 的问题

问题描述

struct {}a,*p 的问题
 typedef struct BTNode {                //B-树的结构
    int keynum;                     //n
    struct BTnode *parent;          //指向双亲
    KeyType key[m + 1];             //K(i)
    struct BTNode *ptr[m + 1];      //A(i)
    //Record *recptr[m + 1];        //记录指针向量
}BTNode, *BTree;

BTree是指向结构的指针,BTNode * 也是,那我为什么不能把BTree型的值赋给BTNode * 型的呢?

解决方案

struct BTnode *parent;改为struct BTNode *parent; 注意大小写。

解决方案二:

一个是BTNode, 一个是* BTree,类型本就不同。还有定义结构体应该这样:
typedef struct { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;

解决方案三:

 typedef struct BTNode { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;

解决方案四:


typedef struct BTNode { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;

解决方案五:

这样了:
```typedef struct { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;


解决方案六:

这编辑器太糟糕了!

 typedef struct  {                //B-树的结构
    int keynum;                     //n
    struct BTnode *parent;          //指向双亲
    KeyType key[m + 1];             //K(i)
    struct BTNode *ptr[m + 1];      //A(i)
    //Record *recptr[m + 1];        //记录指针向量
}BTNode, *BTree;

解决方案七:

问题原因:我也把楼主代码拷贝了。代码的确打错了!

shtruct dfdf * p; 这应该也算一个新结构体吧。 反正可以编译通过!

BTree是指向结构的指针,BTNode * 也是,那我为什么不能把BTree型的值赋给BTNode * 型的呢?
这是可以转的。。

时间: 2024-12-20 19:44:31

c语言-struct {}a,*p 的问题的相关文章

关于C语言struct的特殊扩展技巧

<Unix/Linux编程实践教程>中P69页,有写道,dirent结构中成员d_name用于存放文件名.注意在此系统中d_name被定义为只有一个元素的数组,这是如何做到的能?因为一个自负的空间只能存放字符串的结束字符.P92也询问,在struct dirent中,数组d_name[]的长度在有的系统上是1,而在有的系统上是是255.实际长度是多少?为什么会有这些不同? 对此,我也一直十分困惑,直到看到<深度探索C++对象模型>P19才终于明白. 01 //比如: 02 stru

c语言-C语言STRUCT数组 不知道哪错了

问题描述 C语言STRUCT数组 不知道哪错了 #include int main(void) { int i,j; float temp; struct Students { char num; char name; char sex; char age; float score; }; struct Students student[5]= { {'0001','一号','男','19',99}, {'0002','二号','女','18',96}, {'0003','三号','女','19

c语言struct的声明定义问题,这段代码对吗,怎么理解?

问题描述 c语言struct的声明定义问题,这段代码对吗,怎么理解? static struct { int32_t hold_course_cd; bool locked_course; float locked_course_err; } steer_state = { hold_course_cd : -1, locked_course : false, locked_course_err : 0 }; 解决方案 定义了结构体,然后再定义 了 static 的结构体变量 steer_sta

c语言-struct sizeof 的问题

问题描述 struct sizeof 的问题 一:typedef struct S1 { }S1; 这肯定编译过不了! 二:typedef struct S2 { int b; int c; }S2; 在main 输出 sizeof(S2) 输出结果是8 三:typedef struct S3 { int b; int c; char * p; }S3; sizeof(S3) **输出 12 ** 四:typedef struct S4 { int b; int c; char s[0]; }S

Go语言struct类型详解_Golang

struct Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器.例如,我们可以创建一个自定义类型person代表一个人的实体.这个实体拥有属性:姓名和年龄.这样的类型我们称之struct.如下代码所示: 复制代码 代码如下: type person struct {     name string     age int } 看到了吗?声明一个struct如此简单,上面的类型包含有两个字段. 1.一个string类型的字段name,用来保存用户名称这个属性

Go语言struct类型介绍_Golang

struct 我们可以声明新的类型,作为其它类型的属性或字段容器. 如,创建一个自定义类型person代表一个人的实体.这个实体拥有属性:姓名&年龄.这样的类型我们称之为struct. 复制代码 代码如下: type person struct{         name string         age int } 复制代码 代码如下: var P person // P 现在就是 person 类型的变量了 P.name = "Astaxie" //  赋值 "

C语言中结构体(struct)的几种初始化方法_C 语言

本文给大家总结的struct数据有3种初始化方法      1.顺序      2.C风格的乱序      3.C++风格的乱序 下面通过示例代码详细介绍这三种初始化方法. 1)顺序 这种方法很常见,在一般的介绍C的书中都有介绍.顺序初始化的特点是: 按照成员定义的顺序,从前到后逐个初始化:允许只初始化部分成员:在被初始化的成员之前,不能有未初始化的成员. 示例: struct User oneUser = {10, "Lucy", "/home/Lucy"}; 2

interceptor-关于struct拦截未登录用户的问题

问题描述 关于struct拦截未登录用户的问题 <?xml version=""1.0"" encoding=""UTF-8"" ?><!DOCTYPE struts PUBLIC ""-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"" ""http://struts.a

leetcode 002 add two numbers C语言

问题描述 leetcode 002 add two numbers C语言 struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) { struct ListNode *l, *p; l = (struct ListNode*)malloc(sizeof(struct ListNode)); l->val = l1->val + l2->val; p = l; l1 = l1->next; l