库函数
原因:因有些功能会频发使用
库函数具体介绍可查下方链接:
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);
}