搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 大家帮忙看下
标题:
大家帮忙看下
只看楼主
weststreet
等 级:
论坛游民
帖 子:21
专家分:18
注 册:2011-2-9
楼主
问题点数:0 回复次数:15
大家帮忙看下
#include<iostream>
using namespace std ;
void copy(char * a, char * b)
{
char * t ;
t=a, a=b, b=t ;
}
int main(void)
{
char a[]="abcdefg";
char b[]="hijklmn";
copy(a, b) ;
cout<<* a<<endl ;
}
为什么结果是a而不是h?
搜索更多相关主题的帖子:
abcdefg
2011-02-10 14:18
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
2
楼
得分:0
void copy(char * a, char * b)
{
char t ;
t=*a, *a=*b, *b=t ;
}
2011-02-10 14:26
weststreet
等 级:
论坛游民
帖 子:21
专家分:18
注 册:2011-2-9
第
3
楼
得分:0
我的意思是直接交换地址
2011-02-10 14:51
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
4
楼
得分:0
以下是引用
weststreet
在2011-2-10 14:51:34的发言:
我的意思是直接交换地址
别傻,地址是个常量,怎么可能交换
2011-02-10 14:54
weststreet
等 级:
论坛游民
帖 子:21
专家分:18
注 册:2011-2-9
第
5
楼
得分:0
呵呵 懂了 谢谢
2011-02-10 15:08
weststreet
等 级:
论坛游民
帖 子:21
专家分:18
注 册:2011-2-9
第
6
楼
得分:0
对了
但是直接输出* (a, b)的结果倒是h 为什么呢?
2011-02-10 15:12
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
7
楼
得分:0
以下是引用
weststreet
在2011-2-10 15:12:56的发言:
对了
但是直接输出* (a, b)的结果倒是h 为什么呢?
对于逗号表达式,返回最后一个,也就是 *(a,b) 等同于 *b
2011-02-10 16:28
Pirelo
等 级:
黑侠
帖 子:118
专家分:550
注 册:2011-1-28
第
8
楼
得分:0
以下是引用
weststreet
在2011-2-10 15:12:56的发言:
对了
但是直接输出* (a, b)的结果倒是h 为什么呢?
你的意思是这样输出cout<<* (a,b)<<endl?这样也可吗?
2011-02-10 16:33
Pirelo
等 级:
黑侠
帖 子:118
专家分:550
注 册:2011-1-28
第
9
楼
得分:0
回复 8楼 Pirelo
如果是这样输出,cout<<* a<<endl ;
那么输出的肯定只有h了,程序中a,b相当于两个指针,分别指向两个字符窜数组的首个元素,调用copy()函数,也相当于只交换了两个数组的首个元素,要想全部交换或者全部输出,还得加一个循环语句。
2011-02-10 16:40
weststreet
等 级:
论坛游民
帖 子:21
专家分:18
注 册:2011-2-9
第
10
楼
得分:0
不好意思写错了 应该是cout<<*copy(a, b)
结果为h
2011-02-10 17:11
16
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-331997-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.525963 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved