📄 subject_53314.htm
字号:
<p>
序号:53314 发表者:瘦人 发表日期:2003-09-18 18:08:19
<br>主题:关于指针的一个问题
<br>内容:大家看下面代码:<BR><BR>char ptr_test(char * str)<BR>{<BR> str++;<BR> return str;<BR>}<BR><BR>main()<BR>{<BR> char *str="hello";<BR> printf("%s\n",str);<BR> ptr_test(str);<BR> printf("%s\n",str);<BR><BR> return 0;<BR>}<BR><BR>为何两次都是输出“hello "<BR>我认为第二次该是 ”ello“<BR>可是两次的输出一样的<BR>这是在《标准c语言实用全书》里看到的,但代码不是,<BR>书里说象 ptr_test() 返回的不是指针,请大家指教<BR>可能是兄弟较笨,不能理解书的内容。<BR>但是我将 ptr_test() 换成如下时可以 ptr_test(char * * str)<BR>函数的实现不变<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:飞翔的瞳眸 回复日期:2003-09-18 18:16:35
<br>内容:str是形参.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:自由 回复日期:2003-09-18 20:31:12
<br>内容:你可以这样:<BR><BR>char* ptr_test(char * str)<BR>{<BR> str++;<BR> return str;<BR>}<BR><BR>main()<BR>{<BR> char *str = "hello";<BR> printf("%s\n",str);<BR><BR> /*ptr_test(str);str没有变*/<BR> str = ptr_test(str);<BR> printf("%s\n",str);<BR><BR> return 0;<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:水番 回复日期:2003-09-18 20:33:21
<br>内容:在C++中,除非参数是引用,否则都是传入一个拷贝,<BR>也就是说<BR>char ptr_test(char * str)<BR>{<BR> str++;<BR> return str;<BR>}<BR><BR>main()<BR>{<BR> char *str="hello";<BR> printf("%s\n",str);<BR> ptr_test(str); // 调用函数返回后str依然没有改变。<BR> printf("%s\n",str);<BR><BR> return 0;<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:水番 回复日期:2003-09-19 00:24:27
<br>内容:解决的办法<BR>char ptr_test(char * str)<BR>{<BR> str++;<BR> return str;<BR>}<BR>改为<BR>char* ptr_test(char* &str)<BR>{<BR> str++;<BR> return str;<BR>}<BR><BR>2003-9-19 0:25:33
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -