目录
1. 函数的简介
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
C 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。
2. 函数的简单使用
#include<stdio.h>
int main(void)
{
int a, b, c, d, e, f;
a = 1; b = 2; c = 3; d = 4; e = -5; f = 100;
if (a > b)
printf("%d\n", a);
else
printf("%d\n", b);
if (c > d)
printf("%d\n", c);
else
printf("%d\n", d);
if (e > f)
printf("%d\n", e);
else
printf("%d\n", f);
return 0;
}
这个是我们的程序,这个程序重复了许多次if else,如果我们定义了10000个变量,那就要写1000个if else,这样特别麻烦且不合适。
代码重复操作是重复的,我们求ab得最大值和求cd的最大值操作是一样的,只不过数据不一样
#include<stdio.h>
//max势函数的名字,i,j是形式参数,简称形参 void表示函数没有返回值
void max(int i, int j)
{
if (i > j)
printf("%d", i);
else
printf("%d\n", j);
}
int main(void)
{
int a, b, c, d, e, f;
a = 1; b = 2; c = 3; d = 4; e = -5; f = 100; \
max(a, b); max(c, d); max(e, f);
return 0;
}
函数中的变量叫形参,i和j,内部对i,j进行处理代码。我们这个程序是从main函数进入的,int表示返回一个整形值,return 0;返回整形值,void表示不接受任何参数。
我们先执行main函数,再继续执行,max(a,b)意味着它会把a的值发给i,b的值发给j,然后会跳转到max函数中执行。
可见函数是为了相似的大量的同类型的问题而设计的。函数里处理的数据是不一样的,但是对这些数据的操作是一样的。
3. 为什么需要函数
避免了重复操作
有利于程序模块化
4. 什么叫函数
逻辑上:能够完成特定功能的独立的代码单元
物理上:能够接受数据(也可以不接受数据)
能够对接受的数据进行处理
能够将数据处理的结果返回(也可以不返回任何值)
例子
#include<stdio.h>
int f(void)//括号中的void表示该函数不能接受数据 int表示函数返回值是int类型的数据
{
return 10;//向主函数返回10
}
void g(void)//函数名前面的void表示该函数无返回值
{
//return 10; //error与8行行首的void相矛盾
}
int main(void)
{
int j = 88;
j = f();
printf("%d\n", j);
// i = g(); //error因为g函数无返回值
return 0;
总结:函数是个工具,它是为了解决大量类似问题而设计的
5. 如何定义函数
函数的返回值 函数的名字(函数的形参列表)
{
函数的执行体
}
1. 函数定义的本质是详细描述函数之所以能够实现某个特定功能的具体实现方法
2. 函数返回值的类型也称为函数的类型,因为如果,函数名前的返回值类型和
函数执行体中的return表达式;中表达式类型不同的话。则最终函数返回值
的类型 以函数名前的返回值类型为准 例子
include<stdio.h>
int f()
{
return 10.5;//因为函数的返回值类型是int 所以最终f的返回的是10而不是10.5
}
int main(void)
{
int i = 99;
double x = 6.6;
x = f();
printf("%lf\n", x);
return 0;
}
3. return表达式;的含义 :
1> 终止被调函数,向主函数返回表达式的值
2> 如果表达式为空,则只终止函数,不向被调函数返回任何值
3> break是用来终止循环和switch的,return是用来终止函数的
例子
#include <stdio.h>
void f(void)
{
int i;
for (i = 0; i < 5; ++i)
{
printf("the world!\n");
return;
}
printf("wryyyyyyy!\n");
}
int main(void)
{
f();
return 0;
}
// 输出 the world!
break
#include <stdio.h>
void f(void)
{
int i;
for (i = 0; i < 5; ++i)
{
printf("the world!\n");
break;
}
printf("wryyyyyyy!\n");
}
int main(void)
{
f();
return 0;
}/*the world!
wryyyyyyy!*/
6. 函数的分类
有参函数 和 形参函数
有返回值函数 和 无返回值函数
库函数 和 用户自定函数
值传递函数 和 地址传递函数
普通函数 和 主函数(main函数)
一个程序必须有且只有一个主函数
主函数可以调用普通函数 普通函数不能调用主函数
普通函数可以相互调用
主函数是程序的入口,也是程序的出口
7. 判断一个数是不是素数
include<stdio.h>
bool IsPrime(int val)
{
int i;
for (i = 2; i < val; ++i)
{
if (val % i == 0)
break;
}
if (i == val)
return true;
else
return false;
}
int main(void)
{
int val;
int i;
scanf_s("%d", &val);
if (IsPrime(val))
printf("Yes!\n");
else
printf("No!\n");
return 0;
}
感谢观看