社区
C语言
帖子详情
返回这样的指针可以吗?
sunnysmile
2007-06-28 09:27:57
char* fun(char* p)
{
......
p++;
*p = 'a';
return p;
}
这个指针应该是在栈里面的吧,能返回吗?
...全文
327
20
打赏
收藏
返回这样的指针可以吗?
char* fun(char* p) { ...... p++; *p = 'a'; return p; } 这个指针应该是在栈里面的吧,能返回吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
可以
让你不再害怕
指针
深入理解
指针
,很详细,如有错误请高手指点 PDF文件格式下载:http://download.csdn.net/source/454542
C语言中函数的思考(可以
返回
局部变量吗、可以
返回
局部变量的地址吗、可以
返回
局部
指针
吗)...
一般的来说,函数是可以
返回
局部变量的。局部变量的作用域只在函数内部,在函数
返回
后,局部变量的内存已经释放了。因此,如果函数
返回
的是局部变量的值,不涉及地址,程序不会出错。但是如果
返回
的是局部变量的地址(
指针
)的话,程序运行后会出错。因为函数只是把
指针
复制后
返回
了,但是
指针
指向的内容已经被释放了,这样
指针
指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过
返回
指向栈内存的
指针
(注意...
什么是野
指针
?应该如何避免?
第一,当一个
指针
没有指向时,我们一般默认指向NULL。(NULL代表内存的0地址,并且NULL是不允许做任何操作的)请认真研究这样的表达式的优点,这个表达式在代码的维护性,扩展性都大大提高了。这方面是我们平时写代码时所应该提高的。我们在工作中,经常会遇到野
指针
引起的问题。终归到底,还是编码不规范导致的。的,因此我们只能避免野
指针
的出现,而不能杜绝。(请注意用词)我们在编程时,做到以下几点可以有效地避免野
指针
的出现。我相信只要大家在平时写代码是做到以上几点,是可以很好地避免野
指针
的出现。
引用和
指针
的区别?传引用比传
指针
安全,为什么?如果我使用常量
指针
难道不行吗?
引用和
指针
的区别 (1) 引用在创建的同时必须初始化,即引用到一个有效的对象;而
指针
在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在NULL引用,引用必须与合法的存储单元关联;而
指针
则可以是NULL. (3) 引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用;而
指针
在任何时候都可以改变为指向另一个对象.给引用赋值并不是改变它和原始对象的绑定关系. ...
返回
函数局部
指针
的问题
如果在一个函数中定义了一个局部的
指针
,是否能
返回
这个
指针
呢?我们虽搞清以下的问题。 第一:函数
返回
指针
值应是
返回
指针
变量里保存的地址,而不是
指针
变量本身。 第二:栈中的值是不能
返回
的,堆中的值则可以
返回
。 第三:在函数内定义的局部
指针
,都是在栈区声明的,但可以指向栈区、堆区和静态区。是否能
返回
由
指针
的指向决定。只要不是指向栈区的,都能
返回
。 第四:在函数内使用全局
指针
时,一定要先定义一个局
C语言
70,024
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章