库函数

原因:因有些功能会频发使用

库函数具体介绍可查下方链接:

strcpy - C++ Reference (cplusplus.com)

自定义函数

返回值类型 函数名(形参)
{
  语句;
}

函数的调用

形参:在不接收值时,不占用内存

实参:占用内存,可以是常量,变量,表达式,函数

相关具体位置可参看下方代码

传值调用

形参和实参有不同内存块(不改变实参的值)

int jug(int a)	//形参
{
	int i = 0;

	for (i = 2; i <= sqrt(a); i++)
	{
		if (a % i == 0)
		{
			return 0;
			break;
		}
	}
	if (i > sqrt)
	{
		return 1;
	}
}
int main()
{
	int a = 0;

	printf("请输入一个数字>>>");
	scanf("%d", &a);

	if (jug(a))	//实参
	{
		printf("该数是素数\n");
	}
	else
	{
		printf("该数不是素数");
	}
	return 0;
}

传址调用

函数内外部之间有联系(需要改变实参的值)

void swap2(int* pa, int* pb)	//形参
{
	int tmp = 0;
	tmp = *pa;
	*pa = *pb;
	*pb = tmp;
}
int main()
{
	int a = 10;
	int b = 20;

	printf("a=%d b=%d", a, b);
	swap2(&a, &b);	//实参

	printf("a=%d b=%d", a, b);

	return 0;
}

函数的嵌套引用和链式访问

嵌套引用

函数引用函数

void line1()
{
  printf("zhang\n");
}
void line3()
{
  for(i = 0; i < 3; i++)
  {
    line1();
  }
  int main()
  {
   	void line3(); 
  }

链式访问

一个函数的返回值作为另一个函数的参数

printf("%d", strlen("abc");

函数的声明和定义

函数声明

放在调用之前,一般放在头文件中

函数定义

指函数的具体的功能实现

下面是对函数声明和定义的一般使用案例

add.h
int add(int a, int b);

add.c
int add(int a, int b)
{
  z = a+b;
 	return z;
}

main.c
{
	#inculde "add.h"		//库函数用<>,自定义函数用""
	int a = 10;
  int b = 15;
  z = add(a, b);
}