自然卷酷酷的

导航

c语言函数--数组与非数组的形参差异

点击查看代码
#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;
}
这份代码就可以看出数组与非数组在函数形参上的差异,第一个函数是要实现两个数之间的交换,第二个是把字符串倒过来。但第一个函数是不足以实现功能的。主要是因为函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。所以第一个要想实现要使用指针。第二个为什么可以呢?因为第二个是由于形参数组看似数组实则指针(形式数组=指针)

image

posted on 2026-06-13 19:24  自然卷酷酷的  阅读(3)  评论(0)    收藏  举报