通过值调用更改数组元素

 呼吸的雨儿作_741 发布于 2022-12-18 17:35

我将数组元素传递给函数.此函数为数组的每个元素添加5.我也传递一个整数并向它添加5 ...即使它是一个'按值调用'函数,整数的值main()也不会改变(这是预期的)但是数组元素确实改变了......

我不知道怎么样和为什么?

#include 

using namespace std;

void change(int x[],int y);

int main()
{
    int sharan[]={1,2,3,4};
    int a=10;
    change(sharan,a);
    for(int j=0;j<4;j++)
    {
        cout<

P0W.. 5

数组衰减到指针,

void change(int x[],int y) 相当于 void change (int *x, int y )

x[i] += 5;

你正在改变地址的内容 x+i

y=5;inside change基本上更新了y其地址未传递的本地副本,因此不存在yafter的实际值的修改change

1 个回答
  • 数组衰减到指针,

    void change(int x[],int y) 相当于 void change (int *x, int y )

    x[i] += 5;

    你正在改变地址的内容 x+i

    y=5;inside change基本上更新了y其地址未传递的本地副本,因此不存在yafter的实际值的修改change

    2022-12-18 17:37 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有