函数
函数的定义
定义自己的函数,在往期的c语言学习当中,我们都是利用库里的函数,如今我们可以通过自己定义的函数,来使用
例如 设置一个求解素数的函数
#include <stdio.h>
int prime(int i);
int main()
{}
int prime(int i)
{
int true=1,int t=2;
for(;t<=i-1;t++)
{
if(i%t==0) true=0;
break;
}
return true;
}
如代码所示 定义的prime()函数 用于判断素数的真假,如果是素数就返回一个真值,如果不是素数,就返回一个假值
int main为主函数 int prime是自己定义的函数 int main前的函数是函数声明,带有分号,让系统运行时知道有这个自定义的函数
将自己定义的函数反正主函数后面也是为了方便使用者理解和修改
解释
函数是一块代码,可以接收零个或多个函数,然后去做一件事情,并返回一个或多个值
prime是函数名 int是函数头 函数头的圆括号内为参数值 起到了调用作用 大括号内是函数体
ps:即使没有参数名也要在函数头后面加圆括号 ,有参数就给出顺序值进行初始化
#include <stdio.h>
void sum(int begin,int end);
int main()
{}
void main()
{
int sum=0,i;
for(i=begin;i<=end;i++)
{
sum=sum+i;
}
printf("%d",sum);
}
如代码所示,定义的求和函数 函数头是void 没有return函数 是因为不需要返回参数值
函数的返回
return 0大家都知道是将主函数的值0返回回去
如今学到了函数的定义,如果在设计函数的时候,需要将值从函数中返回到主函数,需要借助到return
int min(int a,int b)
{
int k;
if(a<b) k=a;
else k=b;
return k;
}
一个求两者之间最小值的函数,在进行一系列的操作后,最后返回的k就是我们需要的最小值,
return k就是将k(最小值)返回到主函数中
一个函数也可以有多个return
int min(int a,int b)
{
if(a<b) return a;
else return b;
}
并且可以赋值给变量也可以再传递给函数
函数的先后关系
总之就是主函数放在前面 自定义的函数在后面 函数的声明在主函数前面,让c语言编译器知道就行
参数传递
c语言类型不匹配不同于c++和java,没有严格的要求,编译器会自动帮我们选择类型转换,这也是c语言的缺点
本地变量
本地变量是定义在块内的
它可以定义在函数的块内,也可以定义在语句的块内,甚至可以随便拉一对大括号来定义变量,并且块外面定义的变量在里面仍然有效
但是在里面定义的变量在外面却无效
例:
#include <stdio.h>
void hd(void);
int main()
{
int a=1;
hd();
{
int a = 15;
printf("%d\n",a);
}
printf("%d\n",a);
}
void hd()
{
}