| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 949 人关注过本帖
标题:退出函数时想保留这个指针
只看楼主 加入收藏
ppsmile
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-21
收藏
 问题点数:0 回复次数:12 
退出函数时想保留这个指针
int s[100];
main()
{
   fun1
 }
-----------------------不同文件
extern s;
fun1()
{
  fun2(&s,...)
}
-------------------------
fun2(static *p,...)
{
 .....
 p++;
}

退出函数时想保留这个指针p,就是调用fun2时要逐个读取a的数据,这么做不行,一调用完fun2指针就不知道指哪去了,该怎么改
搜索更多相关主题的帖子: 指针 
2008-11-22 11:31
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
把p作为返回值返回,或者用全局变量

另外,s是数组名,也是数组地址,所以传入参数时,用fun2(s,...)就可以了
static *p这个是什么意思?没见过在函数参数里面用static的,
而且用static后,不能少掉数据类型int

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-11-22 11:43
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
昨天我也是在用静态局部变量的时候,就写了static i;
结果查问题查了半个小时才解决

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-11-22 11:44
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
使用 static 可以只赋一次初值

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 11:46
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
万恶的微软啊……VC6是支持static i = 10;这种代码的。于是很多人都这么写了——这其实没什么,因为我也经常忘掉了static后面具体的数据类型了。问题是VC6支持啊,于是就成了沉疴……后来VC2005/2008严格支持ANSI C,不支持这种语法了,于是繁重的体力劳动就来了…………

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-11-22 15:49
ppsmile
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-21
收藏
得分:0 
我写的是static int *p~~`只是上面省略了,呵呵
2008-11-22 16:05
ppsmile
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-21
收藏
得分:0 
[bo][un]永夜的极光[/un] 在 2008-11-22 11:43 的发言:[/bo]

把p作为返回值返回,或者用全局变量

另外,s是数组名,也是数组地址,所以传入参数时,用fun2(s,...)就可以了
static *p这个是什么意思?没见过在函数参数里面用static的,
而且用static后,不能少掉数据类型in ...



"没见过在函数参数里面用static的",那p既要是参数,又想定义为static的话,怎么办
如果下面再定义,出错会说重复定义了
2008-11-22 16:15
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
fun2内使用static变量,并接受两个参数。

如果第二个指针参数不为空,则当作初始化存到static变量中

如果传入的第二个参数为NULL,则使用static里面的值。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-11-22 16:59
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
[bo][un]ppsmile[/un] 在 2008-11-22 16:15 的发言:[/bo]




"没见过在函数参数里面用static的",那p既要是参数,又想定义为static的话,怎么办
如果下面再定义,出错会说重复定义了

我似乎想不出有什么情况需要这么定义,

你最好说说你要实现的功能,肯定有其他更好的方法

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-11-22 17:23
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
程序代码:
fun2(static *p,...)
{
.....
p++;
static *pp=p;  /*下一次进入函数时,在这一句以下的代码可以留住.*/
}

以上是一种办法..
我还有一种办法,用全局函数.
程序代码:
int *pp;           /*全局指针,pp*/
int s[100];
main()
{
   fun1
}
-----------------------不同文件
extern s;
fun1()
{
  fun2(&s,...)
}
-------------------------
fun2(static *p,...)
{
.....
p++;
pp=p;                       /*把p付给pp*/
}


问问extern是什么?

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 19:42
快速回复:退出函数时想保留这个指针
数据加载中...
 
   



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

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