#include<stdio.h>int main(){void cmp(int a[]);int a[2]={2,1};cmp(a);printf("%d %d",a[0],a[1]);printf("\n");return 0;}void cmp(int a[]){int t;if(a[0]>a[1]){t=a[0];a[0]=a[1];a[1]=t;}}
可以实现数组a内数据比较排序。
#include<stdio.h>int main(){void cmp(int x,int y);int a[2]={2,1};cmp(a[0],a[1]);printf("%d %d",a[0],a[1]);printf("\n");return 0;} void cmp(int x,int y){int t;if(x>y){t=x;x=y;y=t;}}
不能实现数组a内数据比较排序。
3.12:已解决。
因为c函数参数传递机制是传值;数组名作为参数,本质是指针,故第一个实现了交换;而第二个直接传入值,相当于复制了一份数据,对原数据没有任何影响;(详见 函数;数组与指针 那两章;)