我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 一个指针传递的问题,烦恼N久了。。。 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

ljpdxj



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 687
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-02-28
最后登陆: 2008-06-29

5come5帮你背单词 [ open /'əupən/ a. 开的,开阔的,营业的,开放的;vt. (打)开,将…打开,开始,打通;vi. 开(放) ]


一个指针传递的问题,烦恼N久了。。。

定义一个单链表并初始化
main()中调用节点初始化子函数fun(node **P)实现头结点的初始化.
不明白为什么这里要2级指针传递?!
一级指针不行么?

Quote:


#typedef struct
{
    int date;
    note *next;
}note;

int mian()
{
    note *P;
    fun(&p);
    ......
}

note * fun(note *p)
{
    p=(note*)malloc(sizeof(note));
    ......
}


以前的学的东西都搞忘记了。。。
是不是因为指针传递也是传拷贝?应该是这样哈?!!
所以第二个函数应该写为:


Quote:

note * fun(note  * *p)
{
  * p=(note*)malloc(sizeof(note));
    ......
}
顶端 Posted: 2007-11-10 21:12 | [楼 主]
k哥



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
家族: 物电学子快快快
发贴: 1109
威望: 0
浮云: 1109
在线等级:
注册时间: 2007-09-07
最后登陆: 2010-09-21

5come5帮你背单词 [ senseless /'senslis/ a. 无知觉的,无感觉的,愚蠢的,无意义的 ]


Quote:
引用第3楼稀饭包子泡菜于2007-11-10 21:22发表的  :
传递的都是值,形参和实参值相同
在函数里为指针重新分配空间是无法带回的

在函数里动态生成的空间的是可以带回他的地址的
不过用单指针传递,在函数中对其赋值不能带回到主函数;而且在函数中不及时释放动态生成的空间的话,会出错,甚至会使程序直接 希白。。。
而用双指针传递,在函数中对其赋值可以带回主函数
顶端 Posted: 2007-11-10 22:57 | [1 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.011253(s) query 6, Time now is:11-22 21:21, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号