标题:有关数据结构的几个小问题
只看楼主
lxslxs123
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-17
结帖率:80%
已结贴  问题点数:20 回复次数:5 
有关数据结构的几个小问题
1.
linklist list_create(int n)
{
  ....
   return 0;
}
对linklist的定义如下:
type struct node
{
   int data;
   struct node* next;
}* linklist;
对此系统给了这样的warning: makes integer from pointer without a cast.
为什么一个linklist类型的函数却可以返回一个整型数值?

2.
做完程序保存了之后,会在文件夹中生成一个执行程序,但那个程序打开执行操作后直接自动关闭,求解怎样才能让它像在编译软件里面那样你按键它才会结束?

3.
有时候会看到 exit(0)、exit(1)这个语句是什么意思

4.
p3->next=p1?p1:p2;    这个语句不知道啥意思。。

求各位大神给解释!   小弟感激不尽!
搜索更多相关主题的帖子: warning without return 文件夹 
2014-12-22 20:52
lxslxs123
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-17
得分:0 
今天有回答的今天就结贴!   
求大家会哪个就答哪个
2014-12-22 20:58
巧若拙
Rank: 4
来 自:宁波余姚
等 级:业余侠客
威 望:1
帖 子:159
专家分:273
注 册:2014-8-24
得分:10 
1.
linklist list_create(int n)
{
  ....
   return 0;
}
中的“return 0;”相当于“return NULL;”

2.
做完程序保存了之后,会在文件夹中生成一个执行程序,但那个程序打开执行操作后直接自动关闭,求解怎样才能让它像在编译软件里面那样你按键它才会结束?
在主函数中加一条语句getchar();

3.
有时候会看到 exit(0)、exit(1)这个语句是什么意思
意思是正常退出程序或非正常退出程序。

4.
p3->next=p1?p1:p2;  

? : 是一个三目运算符,也是唯一的一个三目运算符。?前面表逻辑条件,:前面也就是?后面表示条件成立时的值,:后面表条件不成立时的值。
本语句意思为如果p1!=NULL,则p3->next=p1;否则p3->next=p2
2014-12-22 21:08
lxslxs123
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-17
得分:0 
回复 3楼 巧若拙
非常感谢你!

第一个问题还有些疑问,返回0可以当做NULL来理解,我还试过返回12或其他非零正整数,都是可以,这个是怎么回事。
2014-12-22 21:16
yahwei
Rank: 7Rank: 7Rank: 7
来 自:湖~
等 级:黑侠
威 望:3
帖 子:145
专家分:644
注 册:2011-11-10
得分:10 
以下是引用lxslxs123在2014-12-22 21:16:52的发言:

非常感谢你!

第一个问题还有些疑问,返回0可以当做NULL来理解,我还试过返回12或其他非零正整数,都是可以,这个是怎么回事。

你的函数定义要求返回一个指针,可是你却用 return 0; 来返回一个整数。当函数定义中的返回类型和return语句中的类型不一致时,以函数定义为准,编译警告信息也提示得很清楚。
至于,你说为什么程序不报错?那是因为指针是地址,地址也是一个整数(32位机里就是32位的整型数)。

[qq]949654600[/qq]
2014-12-23 09:22
lxslxs123
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-17
得分:0 
回复 5楼 yahwei
也就是说把一个整数给当成linklist的地址给返回了,对吧
非常感谢!
2014-12-24 11:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-440254-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.243823 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved