点击查看代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
//非数组
void swap(int x, int y)
{
int z = 0;
z = x;
x = y;
y = z;
}
//数组
void reverse(char arr[])
{
int left = 0;
int right = strlen(arr) - 1;
while (left < right)
{
char tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
int main()
{
int x = 0, y = 0;
char arr[] = "abcd";
scanf("%d %d", &x, &y);
swap(x, y);
reverse(arr);
printf("%d %d\n", x, y);
printf("%s\n", arr);
return 0;
}
这份代码就可以看出数组与非数组在函数形参上的差异,第一个函数是要实现两个数之间的交换,第二个是把字符串倒过来。但第一个函数是不足以实现功能的。主要是因为函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。所以第一个要想实现要使用指针。第二个为什么可以呢?因为第二个是由于形参数组看似数组实则指针(形式数组=指针)
