| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 982 人关注过本帖
标题:大家帮忙看下
只看楼主 加入收藏
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
以下是引用weststreet在2011-2-10 17:11:41的发言:

不好意思写错了 应该是cout<<*copy(a, b)
结果为h

不可能呀。  copy 没有返回值,这么写应该有語法错误吧。
2011-02-11 00:03
weststreet
Rank: 2
等 级:论坛游民
帖 子:21
专家分:18
注 册:2011-2-9
收藏
得分:0 
太不好意思了 手机打代码总出错
下面是完整的
#include <iostream>
using namespace std ;

char * copy(char * a, char * b)
{
char * t ;
t=a, a=b, b=t ;
return a ;

}

int main(void)
{
char a[]="abcdefg";
char b[]="hijklmn";
cout<<* copy(a, b)<<endl ;
cout<<a[0]<<endl ;



return 0 ;
}



为深么第一个h第二个输出a?
2011-02-11 13:04
yuanyyp
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-5-21
收藏
得分:0 
你改变的只是 copy 函数的形参a,b 和指针变量 t 中存放的地址;根本就没有改变数组 a 和 b 的地址;

cout<<* copy(a,b)<<endl ;输出 h 是因为在copy函数中指针变量a指向了数组b;

把 cout<<* a<<endl ;放到 copy 函数中就输出 h 了。

第二个输出 a;
是因为数组是常量,数组名是不允许赋值的,所以没法改变它的地址。
你可以试一下,对数组a进行赋值;是会报错的;
偶刚学,也不知道理解的对不?


[ 本帖最后由 yuanyyp 于 2011-2-16 12:30 编辑 ]
2011-02-16 12:09
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:0 
char * copy(char * a, char * b)    //4.指针类型的局部变量a,b。执行到这 局部变量a指向数组a的第一个元素a[0],局部变量b指向数组b的第一个元素b[0]
{
char * t ;
t=a, a=b, b=t ;    //5.首先t=a这里t指向数组元素a[0]。a=b这里局部变量a指向数组元素b[0]。b=t这里局部变量b指向数组元素a[0]。也就是把两个局部变量交换一下,不影响 main 函数里的a,b两个数组
return a ;    //6.从前一步可以看出这里的a指向数组元素b[0]也就是字符 h

}

int main(void)
{
char a[]="abcdefg";    //1.数组a
char b[]="hijklmn";    //2.数组b
cout<<* copy(a, b)<<endl ;    //3.传递a,b到函数
cout<<a[0]<<endl ;    //7.数组a[0]为字符a 数组a还是那个数组a



return 0 ;
}

猜的


[ 本帖最后由 bccn250 于 2011-2-19 04:25 编辑 ]
2011-02-19 04:23
wtyp17401
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-2-23
收藏
得分:0 
有没有高手愿意收徒弟的呀 有的话联系我QQ523979288
2011-02-23 05:54
原野4218
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-2-18
收藏
得分:0 
cout<<*copy(a,b)出错了啊,cout<<*(a,b)是对的
2011-02-23 10:39
快速回复:大家帮忙看下
数据加载中...
 
   



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

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