今天 我们先来看看怎么传参(方法没有总结 )
首先 函数的传参分为传值 与 传址
每到一个例题 我们在说说他们是什么类型的
具体的传址 与传值 的区别 以后再说 xixixi
一:
整型的传参(最基础的)
拿个比较典型的例题 : 比较大小并从小到大输出
#include<stdio.h>
void Fac(int n,int m)
{
int temp;
if (n>m)
{
temp=n;
n=m;
m=temp;
}
printf("%d %d",n,m);
}
int main()
{
int a=2,b=1;
int ret;
Fac(a,b);
return 0;
}
该例题就是典型的传值
将 a,b,的值传给n,m
然后在函数里比较n,m的大小
但是 只能在函数中输出 如果写成下面的代码将没有作用
#include<stdio.h>
void Fac(int n,int m)
{
int temp;
if (n>m)
{
temp=n;
n=m;
m=temp;
}
// printf("%d %d",n,m);
}
int main()
{
int a=2,b=1;
int ret;
Fac(a,b);
printf("%d %d",a,b);
return 0;
}
这就是传值 不能改变原来的数值;
但是 本期的重点是 怎么传参 不讨论传参的类型
OK 整型的传参就如上图所示
我们接下来看看一维数组的传参
#include<stdio.h>
int test(int arr[])
{
}
int main()
{
int arr[10];
test(arr);
return 0;
}
极力推荐(别问为什么 好用简单)
这一种是传址的
二维数组传参
#include<stdio.h>
void test(arr[3][4])
{
// 用二维数组
}
void test1 (arr[][4])
{
//或者 用这个形式
}
int main()
{
int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
test (arr);
test1 (arr);
return 0;
}
这一种也是传址的
其他的下次再说吧(休息)