C语言初阶函数

**C语言初阶函数

`

文章目录

  • **C语言初阶函数
  • 一、函数介绍
    • 1.C语言中函数的分类
    • 2.常用的库函数
    • 3.如何使用库函数
    • 4.自定义函数
    • 5.函数的调用
  • 二、函数的嵌套调用和链式访问
    • 1.函数的嵌套调用
    • 2.链式访问
    • 3.函数的声明和定义
  • 三、函数递归



一、函数介绍

1.C语言中函数的分类

    C语言中函数的分类:1.库函数   2.自定义函数

2.常用的库函数

    (1) IO函数 :printf  scanf  getchar  putchar
     (2) 字符串操作函数:strcmp  strlen  strcpy(拷贝字符串)
     (3) 字符操作函数:toupper(小写转大写函数)
     (4) 内存操作函数:memcpy  memcmp  memset(内存设置)  memory(记忆内存)
     (5) 时间/日期函数:time
     (6) 数学函数:sqrt  pow
     (7) 其他库函数 

3.如何使用库函数

     博主在这里推荐两个途径:
     (1) MSDN
     (2) www.cplusplus.com
     注:使用库函数必须引用#include的头文件!

4.自定义函数

     (1) 自定义函数格式
     char * strcpy ( char *strDestination   const char*strsource)
     {
            语句;
     }
     (2) 格式组成
     函数返回类型:char*  
     函数名:strcpy  
     形参:char *strDestination   const char*strsource
     函数体:语句

5.函数的调用

     (1) 传值调用:改变形参,而不会改变实参
     (2) 传址调用:形参值随着地址一起传递的方式`
#include
void Add(int* p)
{
	(*p)++;
}
int main()
{
	int num = 0;
	Add(&num);
	printf("%d\n", num);//1
	Add(&num);
	printf("%d\n", num);//2
	return 0;
}

二、函数的嵌套调用和链式访问

1.函数的嵌套调用

     函数与函数之间可以有机的组合的
#include
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
int main()
{
	printf("%d", printf("%d", printf("%d", 43)));//4321
	return 0;
}
//printf返回的是打印在屏幕上的个数

3.函数的声明和定义

     当函数的定义放在 main 函数后面时,因为代码是从前往后检测,故会报错,此处就要声明函数
#include
int main()
{
	int a = 10;
	int b = 20;
	//函数声明---告知
	int Add(int, int);
	int c = Add(a, b);
	printf("%d\n", c);//30
	return 0;
}
int Add(int x, int y)
{
	return x + y;
}

三、函数递归

     递归思考方式:大事化小
     递归的两个必要条件:
     ① 存在限制条件,当满足这个限制条件的时候,递归便不在继续
     ② 每次递归调用之后越来越接近这个限制条件
//输入1234,输出1 2 3 4
#include
void print(unsigned int n)
{
	if (n > 9)
	{
		print(n / 10);
	}
	printf("%d ", n % 10);//1 2 3 4
}
int main()
{
	unsigned int num = 0;
	scanf("%u", &num);//1234
	//递归——函数调用自己
	print(num);
	//printf函数可以打印参数部分数字每一位
	return 0;
}
    写递归代码时:
    1.不能死递归,都有跳出条件,每次递归逼近跳出条件
    2.递归层次不能太深

你可能感兴趣的:(c语言)