数组与指针 ·用数组名作为函数的参数 1如果是自定义函数中是使用的数组作 为函数的参数,则实参向函数中传递的 是数组的首地值,那意味着对形参的改 变就会影响到实参的改变 2如果自定义函数中是使用的普通变量 作为函数的参数,则实参向函数中传递 的仅仅是实参的值,那么意味着形参值 的改变将不会对实参的值造成影响
数组与指针 • 用数组名作为函数的参数 1.如果是自定义函数中是使用的数组作 为函数的参数,则实参向函数中传递的 是数组的首地值,那意味着对形参的改 变就会影响到实参的改变 2.如果自定义函数中是使用的普通变量 作为函数的参数,则实参向函数中传递 的仅仅是实参的值,那么意味着形参值 的改变将不会对实参的值造成影响
数组与指针(程序一) #include ●# include ●# define n10 void swaparr(int array l [l, int number) e void swapval (int x, int y) void input(int array l [, int number) e void input(int array l[, int number int*p; p=array l printf("please input %d numbersIn" N)
数组与指针(程序一) #include #include #define N 10 void swaparr(int array1[],int number); void swapval(int x,int y); void input(int array1[],int number); void input(int array1[],int number) { int *p; p=array1; printf("please input %d numbers\n",N);
数组与指针(程序一) for( p<array 1+number p++) scanf("%od"p) void swaparr(int array l[l, int number) Int 1, temp if(number%02)==0) for(i=0; i<=(number-2)/2; 1++)
数组与指针(程序一) for(;p<array1+number;p++) { scanf("%d",p); } } void swaparr(int array1[],int number) { int i,temp; if((number%2)==0) { for(i=0;i<=(number-2)/2;i++)
数组与指针(程序一) temp=array arrayli=array lnumber-1-1 array lnumber-1-ilFtemp f(number%2)=0) for(i=0; i<(number-1)/2; 1++) temp=array l1 array[i=array [number-1-1
数组与指针(程序一) { temp=array1[i]; array1[i]=array1[number-1-i]; array1[number-1-i]=temp; } } if((number%2)!=0) { for(i=0;i<(number-1)/2;i++) { temp=array1[i]; array1[i]=array1[number-1-i];
数组与指针(程序一) array[N-1-i]=temp 1)1 e void swapval(int x,int y) Int temp temp=X X-y y=temp
数组与指针(程序一) array1[N-1-i]=temp; } } } void swapval(int x,int y) { int temp; temp=x; x=y; y=temp; }
数组与指针(程序一) main( e int arrayN,p, xl,y=2; p-array nput(p, N) lr printi("交换前数组中的值:mn"); for(p=array p<array+N; p++) printf(%3d,*p) printf("n;
数组与指针(程序一) main() { int array[N],*p,x=1,y=2; p=array; input(p,N); printf("交换前数组中的值:\n"); for(p=array;p<array+N;p++) { printf("%3d",*p); } printf("\n");
=数组与指针(程序一) p=aray,∥上面的循环已经将指针指向了别的元素,而 非第一个元素 swaparr(p, N) p=aray;∥'上面的循环已经将指针指向了别的元素, 而非第一个元素 print("交换后数组中的值:in"); for(p=array; p<array+N; p++) printf( %3d"*p) printf("n printi("交换前xy中的值:in")
数组与指针(程序一) p=array; //上面的循环已经将指针指向了别的元素,而 非第一个元素 swaparr(p,N); p=array; //上面的循环已经将指针指向了别的元素, 而非第一个元素 printf("交换后数组中的值:\n"); for(p=array;p<array+N;p++) { printf("%3d",*p); } printf("\n"); printf("交换前x,y中的值:\n");
数组与指针(程序一) printf( %03d, %03d,y); rin ntf("n") swapval(ⅹ2y) printi"交换后xy中的值:in"); printf(%03d, %"x,y) printf("n); system (pause) 预测上述程序的输出结果
数组与指针(程序一) printf("%3d,%3d",x,y); printf("\n"); swapval(x,y); printf("交换后x,y中的值:\n"); printf("%3d,%3d",x,y); printf("\n"); system("pause"); } 预测上述程序的输出结果