前言
嘛是函数?函数是嘛?
维基百科对函数的定义是:子程序。嗯,定义得很好,但下次别定义了。
子程序是一个大型程序中的某部分代码,由一个或多个语句快组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。
一、库函数
最开始是没有库函数这个概念的,所有函数都是程序员用头发换来的。但是之后发现有些函数的复用率特别的高,然后五花八门的程序员写出了五花八门的代码,而最后效果却是一样的。于是就把一些常用的函数统一规范定义,就比如输出都用printf来实现。而不是:
猿1:炒蛋用西红柿;
猿2:炒蛋用番茄;
猿3:炒蛋用洋柿子;
库函数的分类:
1.IO函数(输入输出函数),如:pritnf、scanf、getchar、putchar
2.字符串操作函数,如:strcmp、strlen
3.字符操作函数,如toupper
4.内存操作函数,如:memcpy、memcmp、memset
5.时间/日期函数,如:time
6.数学函数
7.其他库函数
int main() { char arr1[20] = { 0 }; char arr2[] = "hello"; strcpy(arr1, arr2); //打印arr1字符串 //%s 以字符串的格式打印 printf("%s", arr1); return 0; }
int main() { char arr[] = "hello"; //设置内存块 memset(arr, 'x', 3); printf("%s\n", arr); return 0; }
二、自定义函数
自定义函数和库函数一样,有函数名
、返回值类型
和函数参数
。但是不一样的是这些都是我们自己来设计。
//定义函数 int get_max(int x, int y) { //函数体 int z = 0; if (x > y) z = x; else z = y; return z; } //返回函数类型的地方写void,表示这个函数不会返回任何值,也不需要返回 void Swap(int* pa, int* pb) { int z = 0; z = *pa; *pa = *pb; *pb = z; } int main() { int a = 10; int b = 20; //调用函数 int max = get_max(a, b); printf("max:%d\n", max); printf("交换前:a:%d b:%d\n", a, b); //调用函数 Swap(&a, &b); printf("交换后:a:%d b:%d\n", a, b); return 0; }