C语言中一个结构不能包含指向自己的指针吗
我似乎不能成功定义一个链表。我试过typedef struct { char*item; NODEPTR next; } *NODEPTR; 但是编译器报了错误信息。难道在C语言中一个结构不能包含指向自己的指针吗?
C 语言中的结构当然可以包含指向自己的指针; [K&R2, 第6.5 节] 的讨论和例子表明了这点。NODEPTR 例子的问题是在声明next 域的时候typedef 还没有定义。为了解决这个问题, 首先赋予这个结构一个标签(“struct node”)。然后,声明“next” 域为“struct node *”, 或者分开typedef 定义和结构定义, 或者两者都采纳。以下是一个修改后的版本:
struct node {
char *item;
struct node *next;
};
typedef struct node *NODEPTR;
至少还有三种同样正确的方法解决这个问题。在用typedef 定义互相引用的两个结构时也会产生类似的问题, 可以用同样的方法解决。
C 语言中的结构当然可以包含指向自己的指针; [K&R2, 第6.5 节] 的讨论和例子表明了这点。NODEPTR 例子的问题是在声明next 域的时候typedef 还没有定义。为了解决这个问题, 首先赋予这个结构一个标签(“struct node”)。然后,声明“next” 域为“struct node *”, 或者分开typedef 定义和结构定义, 或者两者都采纳。以下是一个修改后的版本:
struct node {
char *item;
struct node *next;
};
typedef struct node *NODEPTR;
至少还有三种同样正确的方法解决这个问题。在用typedef 定义互相引用的两个结构时也会产生类似的问题, 可以用同样的方法解决。
【C语言中一个结构不能包含指向自己的指针吗】相关文章
2. 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
3. 用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
7. 我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
8. 介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
9. 我能否用void** 指针作为参数, 使函数按引用接受一般指针
10. C语言实习生简历
本文来源:https://www.mianshiwenti.com/a13252.html
进入下载页面
上一篇:上海方立数码笔试题
下一篇:C,C++的几个面试题小集
﹝C语言中一个结构不能包含指向自己的指针吗﹞相关内容
- 一家外企的面试题目(C/C++面试题,C语言面试题)
- C语言如何决定使用那种整数类型
- C语言笔试题回忆
- C语言开发工程师测试题
- C语言编程练习
- 编写用C语言实现的求n阶阶乘问题的递归算法
- C语言基础笔试题
- C语言面试题
- C语言怎样定义和声明全局变量和函数最好
- C语言变量的命名规则都有哪些