1.在main()中定义一个变量x,键盘输入值,
用传值方式调用函数fun1(),修改形参的值为原来值的平方,返回主程序,输出x
用传址方式调用函数fun2(),同样修改为原来值的平方,返回主程序,输出x。
2. 在main()中定义一个数组aa[9],并初始化,使用传址的方法调用函数func,在func用两个指针接收数组的第一个和最后一个元素地址,实现数组逆置,在主程序main()中输出该数组!
提示:数组长度没有传值,可用用两个指针的差来确定。
#include <stdio.h>
void fun(int *x1, int *x2)
{
int tmp;
int n = (x2 - x1 + 1) / 2;
for (int i = 0; i < n; i++)
{
tmp = *x1;
*x1 = *x2;
*x2 = tmp;
x2--;
x1++;
}
}
int fun1(int x)
{
x *= x;
return x;
}
void fun2(int *x)
{
*x *= *x;
}
int main()
{
int x, aa[9];
scanf("%d", &x);
fun1(x);
printf("\n传值调用后:%d\n\n", x);
fun2(&x);
printf("传址调用后:%d\n\n", x);
for (int i = 0; i < 9; i++)
{
aa[i] = i + 1;
printf("%d ", aa[i]);
}
fun(&aa[0], &aa[8]);
puts("");
for (int i = 0; i < 9; i++)
{
printf("%d ", aa[i]);
}
puts("");
return 0;
}