麻辣堂|资源主站|开发论坛|在线手册
首页注册帮助 
Delphi for php 交流论坛
  您现在的位置:Unix5开源世纪 > U5编程社群 > 详细内容
待解决
初学者,关系函数声明!
悬赏分:20 - 2008-04-20 00:14:00

初学者,关系函数声明!

#include<iostream>

using namespace std;



int main()

{ [color=Red]void swap(char *x ,char *y );[/color]

   char *ap="how are you?";

   char *bp="ok!";

    void swap(char *x ,char *y );

   cout<<"ap="<<ap<<endl;

   cout<<"bp="<<bp<<endl;

   swap(ap,bp);

   cout<<"swap(ap,bp)"<<endl;

   cout<<"ap="<<ap<<endl;

   cout<<"bp="<<bp<<endl;

   return 0;

   }



void swap(char *x,char *y)

{  char *t;

   t=x;x=y;y=t;

   

   }



程序为交换两个字符串.  

  为什么我加了函数声明,却没有交换;

   反而去掉函声明却正常.  

       我刚开始学C++,请高手指教!    [tk13]
提问者:lvyan 2008-04-20 00:14:00
答复
[quote][bo]以下是引用 [un]kaithwin[/un] 在 2008-4-20 01:13 的发言:[/bo]

没有声明可以用是因为swap是c++内部的函数,不然你换一个名字试试
至于为什么不能交换是因为在子函数中只交换了实参的局部副本,不会改变实参 [/quote]

正解
回答者:aipb2007 - 2008-04-21 22:50:00
#include<iostream>
using namespace std;

int main()
{
   char *ap="how are you?";
   char *bp="ok!";
  
   cout<<"ap="<<ap<<endl;
   cout<<"bp="<<bp<<endl;

   swap(ap,bp);
   cout<<"swap(ap,bp)"<<endl;
   cout<<"ap="<<ap<<endl;
   cout<<"bp="<<bp<<endl;
   return 0;
   }

void swap(char *x,char *y)
{  char *t;
   t=x;x=y;y=t;
   
   }
回答者:无业烟民 - 2008-04-21 22:37:00
自己找书看吧
应该每本c++的书都有,很典型的例子
回答者:kaithwin - 2008-04-20 12:46:00
c++内部函数?  有哪些啊.?
  用指针不能交换吗? 为什么引用可以交换而指针不行啊..?
  希望哪位朋友能帮助一下我... 在此先谢了.
回答者:lvyan - 2008-04-20 01:42:00
没有声明可以用是因为swap是c++内部的函数,不然你换一个名字试试
至于为什么不能交换是因为在子函数中只交换了实参的局部副本,不会改变实参
回答者:kaithwin - 2008-04-20 01:13:00
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
35 + 67 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM