C/C++总述:Study C/C++-CSDN博客
目录
1.库函数
2.自定义函数
3.型参&实参
4.嵌套调用和链式访问
5.递归
一、库函数
常用库函数
IO 函数字符串操作函数字符操作函数内存操作函数时间 / 日期函数数学函数其他库函数
注意:
使用库函数,必须包含 #include 对应的头文件
二、自定义函数
自定义函数和库函数一样,有返回值类型、函数名和函数参数。
int get_max(int x, int y)
{
return (x>y)?(x):(y);
}
int 返回类型
get_max 函数名
int x,int y 函数参数
三、实参&形参
实参
真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参
形参
形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效
注意:
形参是实参的临时拷贝
对形参的修改不会影响实参
//实现成函数,但是不能完成任务
void Swap1(int x, int y)//传值调用
{
int tmp = 0;
tmp = x;
x = y;
y = tmp;
}
//正确的版本
void Swap2(int *px, int *py)//传址调用
{
int tmp = 0;
tmp = *px;
*px = *py;
*py = tmp;
}
int main()
{
int num1 = 1;
int num2 = 2;
Swap1(num1, num2);
printf("Swap1::num1 = %d num2 = %d\n", num1, num2);
Swap2(&num1, &num2);
printf("Swap2::num1 = %d num2 = %d\n", num1, num2);
return 0;
}
四、函数的嵌套调用和链式访问
1.嵌套调用
函数和函数之间可以根据实际的需求进行组合的,也就是互相调用的
void new_line()
{
printf("hehe\n");
}
void three_line()
{
int i = 0;
for(i=0; i<3; i++)
{
new_line();
}
}
int main()
{
three_line();
return 0;
}
注意:
函数可以嵌套调用,但不能嵌套定义
2.链式访问
把一个函数的返回值作为另外一个函数的参数
#include <stdio.h>
int main()
{
printf("%d ", printf("%d ", printf("%d ", 43)));
//注:printf函数的返回值是打印在屏幕上字符的个数
return 0;
}
//43 3 2
五、递归
程序调用自身的编程技巧称为递归( recursion )递归的主要思考方式在于:把大事化小 抽象
递归必要条件
存在限制条件,当满足这个限制条件的时候,递归便不再继续。每次递归调用之后越来越接近这个限制条件。
汉诺塔问题
青蛙跳台问题