SOLA&AIR 2021-03-17 10:56 采纳率: 75%
浏览 53
已采纳

字符串数组地址传递问题

 

  1. 我想在 GetData() 函数中修改buff的值,然后写了这些下列代码
  •  

    void GetData(char* buff)
    {
        cout << "buff = " << buff << endl;
        buff = "222222222";
    
        cout << "buff = " << buff << endl;
    }
    
    int main()
    {
        // 只能定义数组类型,不能写成char* 来定义
        char buff[128] = "11111111111";
        GetData(buff);
    
        cout << "buff = " << buff << endl;
    
        system("pause");
        return 0;
    }
  • 但是结果却不太理想。是形参无法改变实参的问题么?明明已经将buff的地址传递过去了,却还是不对。有哪位大佬帮我解决一下。

  • 写回答

2条回答 默认 最新

  • 开发者小峰 2021-03-17 22:16
    关注

    首先你要明确一点,几乎任何编程语言的函数调用都是将实参的值赋值给形参,改变形参不会影响实参。

    语句buff = "222222222";是直接把新的字符串"222222222"的首地址赋值给了形参

    buff,但是实参buff没有改变且不能改变,buff[128]中的元素也不会改变。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制