12344666 2021-11-29 15:34 采纳率: 0%
浏览 21

c++函数引用和指针形参对应问题

尝试把函数形参改成char*&格式但运行结果没有变化
{
    char*s;
    s = s1;
    s1 = s2;
    s2 = s;
}
int main()
{
        char c[] = "teacher";
        char d[] = "student";
        char* e = c;
        char* f = d;
        const char* i = "teacher";
        const char* j = "student";
        swap(e, f);
        cout << c << d << endl;
        swap(c, d);
        cout << c << d << endl;
        swap(i, j);
        cout << i << j << endl;
        return 0;
}


运行结果teacherstudent
                       studentteacher
                       studentteacher
  • 写回答

2条回答 默认 最新

  • 关注

    char数组不能直接用=赋值。
    交换的时候需要用临时变量进行拷贝

    void swap(char* s1,char* s2)
    {
        char tmp[100]={0};
        memcpy(tmp,s1,strlen(s1));
        memset(s1,0,strlen(s1));
        memcpy(s1,s2,strlen(s2));
        memset(s2,0,strlen(s2));
        memcpy(s2,tmp,strlen(tmp));
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 11月29日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,