1.函数是什么?
在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个句块组成,
它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性
数学中的函数例:f(x) = 2*x+1,f(x,y) = x+y
2.库函数
调用库函数,是提前写好的函数!!!
3.函数类型
IO函数:printf scanf getchar putchar
字符串操作函数:strcmp strlen
字符串操作函数:toupper
内存操作函数:memcpy memcmp memset
时间/日期函数:time
数学函数:sqrt pow
例:strcpy函数
#include <string.h>
int main()
{
char arr1[20] = {0};
char arr2[] = "hello bit";
strcpy(arr1,arr2);
printf("%s",arr1); //打印arr1这个字符串 %s -打印字符串的格式
return 0;
}
memory -记忆-内存
memset-内存设置,设置内存块
int main()
{
char arr[] = "hello bit";
memset(arr,'x',5);
printf("%s\n",arr)
return 0;
}
3.函数
自定义函数
自定义函数就是自己设计的函数和库函数是一样的
char*strcpy(char*strDesination,const char*strSource)
函数的返回类型 函数名(函数的参数)
函数的组成:
ret_type fun_name(paral,*)
{
statement; //语句项
}
ret_type 返回类型
fun_name 函数名
paral 函数参数
//写一个函数可以找出两个整数中的最大值
int get_max(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);
printf("max=%d\n",max);
return 0;
}
例:
互换a和b的值
void Swap(int* pa,int* pb)
{
int z =0;
z =*pa;
*pa = *pb;
*pb = z;
return 1;
}
int main()
{
int a = 10;
int b =20;
//写一个函数,交换2个整型变量的值
printf("交换前:a=%d b=%d\n",a,b);
Swap(&a,&b);
printf("交换后:a=%d b=%d\n",a,b")
}
函数的参数
Swap1(&a,&b);
实际参数-实参
真实传给函数的参数,叫做实参,实参可以是:常量,变量,表达式,函数等,无论
实参是何种类型的量,他们都必须有确定的值,以便把这些值传给形参
形式参数-形参
形式参数是指函数后括号中的变量,因为形式参数只有在函数被调用的过程中才
实例化(分配内存单元),所以叫形式参数,形式参数当函数调用完成之后就自动销毁了,因此
形式参数只在函数中有效
45.函数调用
传值调用:
函数的形参和实参分别占有不同的内存块,对形参的修改不会影响实参,
地址调用:
传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式
这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量