C语言,我在主函数调用了这个函数
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;
//以数组为函数参数传给形参时
//由于数组名传递(地址传递),实参和形参共用一段内存
//对形参更改时实参的值也会改变
}
回答:方法一,定义在外面
方法二,数组直接传进去
#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[],一般临时数组在函数内部定义即可,不作为参数传递