函数

主要掌握函数的基本使用和递归
[toc]

函数是什么

==子程序==

分类

  • 库函数
  • 自定义函数

库函数

方便调用频繁大量使用的功能,推动标准化、模块化

c语言文档网站cpp

strcpy

1
2
char * strcpy (char * destination, const char * source)
返回类型 (参数 )

memset

1
void * memset (void * ptr, int value, size_t num)//size_t 无法整形的类型

自定义函数

一些案例

获取较大值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//自定义get_max函数
int get_math(int x, int y)
{
int z = 0;
if (x > y)
{
z = x;
}
else
{
z = y;
}
return z;//返回z这个较大值
}

int main()
{
int a = 10;
int b = 20;

int max = get_max(a, b);//调用get_max函数

printf("max= %d\n", max)
return 0;
}

交换2个整型变量的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//函数返回类型的地方写void表示这个函数不返回任何值,也不需要返回
viod Swap(int* pa, int* pb)
{
/*int z = 0;
z = x;
x = y;
y = z;*/
//这样写的结果是在调用Swap时,实质上只调换了x和y的地址,应该使用指针
int z = 0;
z = *pa;
*pa = *pb;
*pb = z;
}

int main()
{
int a = 10;
//int* pa = &a;
int b = 20;
//int pb = &b;

printf("交换前:a=%d b=%d\n", a, b);
Swap(&a, &b);
printf("交换后:a=%d b=%d\n", a, b);
return 0;
}

函数的参数

1. 实参

真实传递给函数的参数,可以是常量、变量、表达式。函数调用时,必须要有确定的值,以便把这些值传递给形参

2. 形参

函数名后括号内的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元)所以叫形式参数。形式参数在函数调用完以后就自动销毁,因此形参只在函数中有效(生命周期)。

函数的调用

1. 传值调用

  • 实参形参占有不同的内存块,对形参的修改不会影响实参

2. 传址调用

  • 传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
  • 这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量。

练习

1. 打印100~200之间的素数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int is_prime(int n)
{
int j = 0;s
}
int main()
{
int i = 0;
for (i = 100; i <= 200; i++)
{
if (is_prime(i) == 1);
{

}
}
return 0;
}