| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 721 人关注过本帖
标题:编译和运行
只看楼主 加入收藏
蔡君君
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-10-31
结帖率:100%
收藏
已结贴  问题点数:9 回复次数:1 
编译和运行
#include <iostream.h>
void swap(char &a,char &b);
int main()
{
char * ap="hello";
char * bp="how are you?";
swap(* ap,* bp);
cout <<"ap:"<<*ap<<endl;
cout <<"bp:"<<*bp<<endl;
}
void swap(char &a,char &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
为什么编译的时候没有显示任何错误,但是运行的时候却直接显示这一整个文件出现错误,没有办法进行正常运行。
搜索更多相关主题的帖子: include hello 
2016-11-05 10:19
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:9 
char * ap="hello";//声明了一个字符指针,指向一个静态变量“hello”,而swap函数试图对静态变量进行修改当然就导致出错了。
另外,题主用int temp来交换char[],,脑洞不可谓不大啊,
下面是一段我自己修改的代码,应该不是唯一的解决方案。
程序代码:
#include <iostream>
using namespace std;
void swap(char* &a,char* &b);//依然是引用,不过引用的是字符指针
int main()
{
const char * ap="hello";//声明ap指向一个不可以修改的字符串,但是我们任然可以修改ap
const char * bp="how are you?";
swap( ap,bp);
cout <<"ap:"<<ap<<endl;
cout <<"bp:"<<bp<<endl;
}
void swap(char* &a,char* &b)
{
char* temp;
temp=a;
a=b;
b=temp;
}

图片附件: 游客没有浏览图片的权限,请 登录注册




[此贴子已经被作者于2016-11-5 10:37编辑过]


φ(゜▽゜*)♪
2016-11-05 10:23
快速回复:编译和运行
数据加载中...
 
   



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

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