问题:形参为数组,为什么数组元素就能交换成功。
原因:数组作为形参时,此时的argv是一个指针变量,即它可以保存实参数组的地址, 实参的数组地址为常量。
#include <stdio.h>
#include <stdlib.h>
void swap (char argv [],int i,int j);
int main()
{
char v[]={'a','b'};
int i;
printf("交换前的顺序: ");
for(i=0;i<2;i++)
printf("%c\t" ,v[i]);
printf("\n"); //换行
swap( v,0,1); //交换第一个字符和第二个字符的
printf("交换后的顺序: ");
for(i=0;i<2;i++)
printf("%c\t" ,v[i]);
printf("\n"); //换行
system("pause");
return 0;
}
/* 交换argv[i] 和 argv[j]中的数值 */
void swap( char argv [] ,int i,int j)
{
char temp=argv[i];
argv[i]=argv[j];
argv[j]=temp;
}
输出结果: