薄荷萤火虫 2022-03-24 21:44 采纳率: 91.8%
浏览 18
已结题

C语言数组问题,关于数组的赋值传递方面

C语言,我在主函数调用了这个函数

img


我想要主函数的PN和PY数组在如下函数过程中发生的变化在主函数中也发生变化该怎么办啊

img

void RelevantSort(int PN[],int PY[],int PX[],int PXTemp[],int n)
{
    int Temp[n];//用于存放排序好的PY,最后赋回给PY
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if(PXTemp[i]==PX[j])//找到原来该X坐标是第几个数,即第j个 
            {
                Temp[i]=PY[j];//把Y值赋给Temp中
                PN[i]=j;//PN直接更新 
            }
        }
    }
    PY=Temp;
    //以数组为函数参数传给形参时
    //由于数组名传递(地址传递),实参和形参共用一段内存
    //对形参更改时实参的值也会改变 
}

  • 写回答

1条回答 默认 最新

  • bingbingyihao 2022-03-24 22:11
    关注

    回答:方法一,定义在外面

    img

    方法二,数组直接传进去

    img

    #include <iostream>
    using namespace std;
    
    #define N 10    //需要先定义数组长度的 
    
    void RelevantSort(int PN[], int PY[], int PX[], int PXTemp[], int n);
    
    int main(){
        int PY[N];
        int PN[N];
        int PX[N];
        int PXTemp[N];
        RelevantSort(PN, PY, PX, PXTemp, N);         //方法二,数组名作为参数传进去,由于数组是引用变量,会连带改变数组里面元素的值的,相当于指针 
    }
    
    void RelevantSort(int PN[],int PY[],int PX[],int PXTemp[],int n)
    {
        
    }
    

    最后说明一个问题,这个变量定义,名字可以换的简单些,加上一些函数,例如如果是表示点坐标的,可以改为Pos_x[], Pos_y[],一般临时数组在函数内部定义即可,不作为参数传递

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月1日
  • 已采纳回答 3月24日
  • 创建了问题 3月24日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度