Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么变量和返回乘法?_C_Arrays_Operations - Fatal编程技术网

C 为什么变量和返回乘法?

C 为什么变量和返回乘法?,c,arrays,operations,C,Arrays,Operations,在以下代码中: void fusioneArray(int v[], int vL, int w[], int wL[], int *fusione) { int i,j,temp; int k=0; printf("%d",wL+vL); for(i=0;i<vL;i++) { fusione[k]=v[i]; k++; } for(j=0;j<wL;j++) { fusione[k]=w

在以下代码中:

void fusioneArray(int v[], int vL, int w[], int wL[], int *fusione)
{
   int i,j,temp;
   int k=0;
   printf("%d",wL+vL);

   for(i=0;i<vL;i++)
   {
       fusione[k]=v[i];
       k++;
   }

   for(j=0;j<wL;j++)
   {
       fusione[k]=w[j];
       k++;
   }
}

int main()
{
    int v[5]={1,2,3,4,5};
    int w[5]={5,4,3,2,1};
    int i=0;
    int fusione[10];
    fusioneArray(v,5,w,5,fusione);
}
void fusioneArray(int v[],int vL,int w[],int wL[],int*fusione)
{
int i,j,温度;
int k=0;
printf(“%d”,wL+vL);

对于(i=0;i,因为
wL
是代码中的指针,因此您正在执行指针算术,而不是标准整数算术:

wL+vL=wL+vL*sizeof(整数)


由于在大多数平台上,
int
是4字节,因此您的
wL+vL
将变成
5+5*4=25
,这就是您得到的结果。只需将
int-wL[]
替换为正确的
int-wL
,您将获得所需的行为。

int-wL[]
?你的意思是
int-wL
?有时甚至比这更有趣,因为这是一种编译器定义的东西。当我在简单的算术中得到大量负数时,我知道我在某个地方弄错了指针。