社区
C语言
帖子详情
返回这样的指针可以吗?
sunnysmile
2007-06-28 09:27:57
char* fun(char* p)
{
......
p++;
*p = 'a';
return p;
}
这个指针应该是在栈里面的吧,能返回吗?
...全文
336
20
打赏
收藏
返回这样的指针可以吗?
char* fun(char* p) { ...... p++; *p = 'a'; return p; } 这个指针应该是在栈里面的吧,能返回吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
locust1980
2007-06-29
打赏
举报
回复
p已经修改了,没有必要return,但是你定义的指针函数,只能说调试没有问题
halfstudio
2007-06-29
打赏
举报
回复
最好的方法就是你自己亲自试一试。
netxuning
2007-06-29
打赏
举报
回复
学习
yy_msdn
2007-06-29
打赏
举报
回复
char* fun(char* p)
{
......
p++;
*p = 'a';
return p;
}
其实没有必要返回,因为你传入参数的时候p的值就在原文中有,你修改的是p指向堆栈的内容,而且你修改了p的值,所以返回可能没有意义吧
jixingzhong
2007-06-29
打赏
举报
回复
这样的返回可能在 递归 中使用比较适合 ...
jixingzhong
2007-06-29
打赏
举报
回复
返回有效
shu_yoyo
2007-06-29
打赏
举报
回复
可以啊,
xddzccn
2007-06-28
打赏
举报
回复
可以了
fengdream
2007-06-28
打赏
举报
回复
完全可以的
你可以参考以下这个
http://community.csdn.net/Expert/TopicView.asp?id=5574625
cceczjxy
2007-06-28
打赏
举报
回复
可以的.
agaric
2007-06-28
打赏
举报
回复
我舉個例子吧。
char* fun(char* p)
{
p++;
*p = 'a';
return p;
}
char str[10];
char *retp;
retchar = fun( str );
則 retp = &str[1];
str[1]='a';
星羽
2007-06-28
打赏
举报
回复
p是栈里的,但p指向的内容,不管是堆还是栈上,在你函数返回时都有效
agaric
2007-06-28
打赏
举报
回复
可以的。 p指向的地址還是有效的,因為p的指向是你傳進來的。你要注意的是你p++還有之前的操作,使得p的指向有改動,你得確認這些地址都是可以操作的(申請的空間之內)。
ribut9225
2007-06-28
打赏
举报
回复
为什么要返回呢?
好像你在函数里已修改指针p了啊
星羽
2007-06-28
打赏
举报
回复
可以返回,不过你返回干嘛呢,其实就是你传进来的 p 啊
WizardK
2007-06-28
打赏
举报
回复
没问题,不就是地址值嘛
xlbdan
2007-06-28
打赏
举报
回复
所谓返回一个指针,其实返回的是它指向的地址.
所以在你返回的时候,指针变量被销毁,但它指向的地址还存在,并被返回
因此你的返回是可以的.
但是这个函数在接收数组的时候还好办,如果接收单个变量的话就要出内存问题了
freshui
2007-06-28
打赏
举报
回复
p本来就是你传进来的参数,
返回的是你传进来的p的副本的副本
内容和传进来的参数p不同, 因为你++p了 :)
hwkobeliulili
2007-06-28
打赏
举报
回复
我也觉得可以,呵呵
qlnqln
2007-06-28
打赏
举报
回复
可以
C/C++
指针
经典资料大全
-
指针
可以作为函数的
返回
值,例如动态内存分配函数`malloc`就
返回
一个
指针
。 - 递归函数中,
指针
可以用来保存中间状态,优化算法效率。 4. **
指针
与结构体/类** - 结构体或类的
指针
可以用来访问其成员,包括...
C语言
指针
函数
返回
局部变量
指针
的问题
我们大家都知道
指针
函数的
返回
指针
不能指向函数内的自动变量,如果需要
返回
函数的内部变量的话,就需要将该变量声明为静态变量。为什么函数能够
返回
静态变量的地址而不能
返回
局部自动变量的地址,到底什么样的对象...
c语言函数的数组
返回
和
指针
返回
如果把数组或
指针
返回
给外部
指针
,会发生什么? 1先看看第一种,
返回
数组; #include "stdio.h" char * get_c() { char ch[]="hello"; //这是一个栈空间 char *p; //这也是栈空间 p=ch; printf("%x\n",&...
返回
函数局部
指针
的问题
第一:函数
返回
指针
值应是
返回
指针
变量里保存的地址,而不是
指针
变量本身。 第二:栈中的值是不能
返回
的,堆中的值则可以
返回
。 第三:在函数内定义的局部
指针
,都是在栈区声明的,但可以指向栈区、堆区和静态区。...
野
指针
是什么?以及野
指针
的危害
危害:如果我们对这样一个
指针
进行解引用,对其所指向的空间内容进行了修改,但是实际上这块空间正在被使用,那么这个时候变量的内容突然被改变,当然就会对程序的运行产生影响,因为我们所使用的变量已经不是我们所...
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章