方法 1 return
#include<stdio.h>
int main()
{
//自定义函数声明
int fun(int m);
int a=0;
printf("a=%d\n",a);
a=fun(a);
printf("a=%d\n",a);
return 0;
}
//指针作参数
int fun(int m)
{
m++;
return m;
}
结果:
方法 2 数组作参数
#include<stdio.h>
int main()
{
//自定义函数声明
void putArr(int len,int arr[]);//遍历输出数组
void fun1(int a[]);
//数组初始化
int a[5]={1,2,3,4,5};
putArr(sizeof(a)/sizeof(int),a);
fun1(a);
putArr(sizeof(a)/sizeof(int),a);
return 0;
}
//自定义函数
//数组作参数,做出的更改直接影响 main 中的值
void fun1(int a[])// 与 void fun1(int a[]) 等价
{
a[0]=888;
}
//输出数组
void putArr(int len,int arr[])
{
for(int i=0;i<len;i++)
{
printf("%3d ",arr[i]);
}
printf("\n");
}
结果:
方法 3 全局变量
#include<stdio.h>
int x=1;//全局变量
int main()
{
//自定义函数声明
void fun2();
printf("x=%d\n",x);
fun2();
printf("x=%d\n",x);
return 0;
}
//自定义函数
void fun2()
{
x=666;//对全局变量做出更改,可以影响 main 中的值
}
结果:
方法 4 指针作参数
#include<stdio.h>
int main()
{
//自定义函数声明
void fun3(int *p);
int y=2,*p;
p=&y;
printf("y=%d\n",y);
fun3(p);
printf("y=%d\n",y);
return 0;
}
//指针作参数
void fun3(int *p)
{
*p=999;
}
结果: