struct node *p 和node *p

woos 2004-07-24 04:31:28
假设在程序中有如下定义:

struct node()
{
int v;
node *next;
}NODE;

在使用这一结构体的时候,书上都说要这样声明:
struct node *p;

NODE *p;


而我在程序中一直用
node *p;
这也被正确编译了。

它们有区别吗?

...全文
396 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
woos 2004-07-25
  • 打赏
  • 举报
回复
不好意思,那个括号是没有的,不小心打上去了。。。

明白是怎么回事了。谢谢大家。
antijpn 2004-07-24
  • 打赏
  • 举报
回复
楼上找个能支持这样定义struct的编译器给我看看
elvahuang 2004-07-24
  • 打赏
  • 举报
回复
哈哈 这个没什么
不过是语法啦

编译器可能对语法的支持不同啦
antijpn 2004-07-24
  • 打赏
  • 举报
回复
struct node()//node()是什么?函数调用?函数声明?定义?
{
int v;
node *next;
}NODE;

kaphoon 2004-07-24
  • 打赏
  • 举报
回复
to 楼主:
你的
struct node() //这个括号,什么意思?
{
int v;
node *next;
}NODE;

NODE是个变量,不是类型,所以不能 NODE* p;
你必须要
typedef struct node{
int v;
}NODE;
应该是这样的~~
yesdo 2004-07-24
  • 打赏
  • 举报
回复
c和c++的语法不同的原因。申明结构对象,在c 中一定要加关键字struct;c++中则不须!
你在c++中用NODE *p申明node *p反而是 错的。因为c++中严格区分大小写。

所以在c++中:struct node *p和node *p一样!c 中就不同!
freefalcon 2004-07-24
  • 打赏
  • 举报
回复
typdef struct node -> typedef struct node
freefalcon 2004-07-24
  • 打赏
  • 举报
回复
所以c里面多见如下形式:

typdef struct node
{
int v;
node *next;
}NODE, *PNODE;
redleaves 2004-07-24
  • 打赏
  • 举报
回复
struct node *p; //这是C
node *p; // 这是C++,但C++支持C的方式
BluntBlade 2004-07-24
  • 打赏
  • 举报
回复
在C++中两种写法没有区别。

64,635

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧