世野七 发表于 2021-12-19 14:44:15

求助!

#include <stdio.h>

void add(int a, int b){

       a+=3;

       b*=6;

       printf("a=%d, b=%d\n",a,b);

}

int main(){

       int x=1, y=2;

       add(x, y);

       printf("x=%d, y=%d\n", x, y);

       return 0;

}
这个代码运行出来的结果是
x=4, y=12
x=1, y=2
两个数在自定义的函数里的结果没有带出来
#include <stdio.h>

void swapArray(int a[ ],int b[ ],int length);

int main(){

      int arr1={1,3,5};

      int arr2={2,4,6};

      int i;



      for(i=0;i<3;i++)

                printf("%d",arr1);

      printf("\n");



      for(i=0;i<3;i++)

                printf("%d",arr2);

      printf("\n");



      swapArray(arr1,arr2,3);



      for(i=0;i<3;i++)

                printf("%d",arr1);

      printf("\n");



      for(i=0;i<3;i++)

                printf("%d",arr2);

      printf("\n");



      return 0;

}



void swapArray(int a[],int b[],int length){

      int i,temp;

      printf("swapping now\n");

      for(i=0;i<length;i++){

                temp=a;

                a=b;

                b=temp;

      }

}
这个代码运行出来的结果是
135
246
swapping now
246
135
两个数组在自定义函数里交换后的结果被带出来了,这是为什么?
页: [1]
查看完整版本: 求助!