今天我们来聊聊C语言中两个非常重要的概念:函数和递归。 那我们开始吧! 一、函数是什么?...其实在C语⾔也引⼊函数(function)的概念,有些翻译为:⼦程序,⼦程序这种翻译更加准确⼀些。 C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码。 那我们为什么要用函数呢?...• 如果函数中存在if等分⽀的语句,则要保证每种情况下都有return返回,否则会出现编译错误。 二、数组做函数参数 在 C 语言中,数组作为函数参数是一个重要且容易混淆的知识点。...看到这里,你已经掌握了C语言函数和递归的核心知识。 函数是代码复用的利器,理解值传递和地址传递的区别是关键。 递归是一种强大的编程技巧,记住“递归基”和“递归关系”两大法宝,同时警惕栈溢出的风险。...函数和递归是C语言乃至所有编程语言的基础。多加练习,动手写代码,你一定能熟练运用它们,写出更优秀的程序!加油!
,一直打印hehe 总而言之,在函数中再次调用自己就是递归 如果递归无限的递归下去,就会出现这样的错误,栈溢出 // 每一次函数调用,都要为这次函数调用分配内存空间是内存的栈区上分配的, 如果无限的递归调用函数...a = b; b = c; n--;//当n是3的时候—1就是2,就不满足循环的条件 }//当n是4的=时候,c=1+1=2,然后b就变成下一个运算中的a了,...return c; //当n=1时,不执行循环,直接返回c //当n=2时,不执行循环,直接返回c } int main() { int n = 0; scanf_s...,一直打印hehe 总而言之,在函数中再次调用自己就是递归 如果递归无限的递归下去,就会出现这样的错误,栈溢出 // 每一次函数调用,都要为这次函数调用分配内存空间是内存的栈区上分配的, 如果无限的递归调用函数...return c; //当n=1时,不执行循环,直接返回c //当n=2时,不执行循环,直接返回c } int main() { int n = 0; scanf_s
C语言函数的声明和定义 一个函数一般由两部分组成: 声明部分执 行语句 C语言对变量而言,声明与定义的关系稍微复杂一些,在声明部分出现的变量有两种情况: 一种是需要建立存储空间的。...在函数中出现的对变量的声明,除了用extern声明的以外都是定义,在函数中对其他函数的声明不是函数的定义。 C语言内部函数 一个函数只能被本文件中其他函数所调用,它称为内部函数。...C语言外部函数 在定义函数时,在函数首部的最左端加关键字extern,则此函数是外部函数,可供其他文件调用。 C语言规定,如果在定义函数时省略extern,则默认为外部函数。...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线 C语言开发工具 VC6.0、Devc++、VS2019使用教程...100道C语言源码案例请去公众号:C语言入门到精通
在C语言中,函数和模块是两个关键的概念,它们对于组织代码、实现复用和模块化编程至关重要。 一、函数(Functions) 函数是C语言中的基本构建块,用于执行特定的任务。...三、使用场景 在C语言中,函数和模块各自在程序设计中扮演着关键的角色。 3.1. 函数的使用场景 C语言函数的使用场景非常广泛,从简单的数据处理到复杂的算法实现,都可以通过定义和使用函数来实现。...源文件组织: 每个源文件应包含一组相关的函数实现。 确保源文件中的函数声明与头文件中的声明一致。 3. 编译和链接: 分别编译每个.c源文件生成目标文件(.o或.obj)。...模块封装: 将模块的内部实现细节隐藏起来,只通过公共接口与外部交互。 避免在头文件中包含过多细节,只提供必要的声明。 五、测试 题目:C语言中函数的基本组成部分有哪些?请分别说明其作用。...问题:解释C语言函数参数传递中的“值传递”与“地址传递”(通过指针)的区别,并说明何时应使用指针作为参数。
前言 函数、指针这两个词结合的顺序不同其意义也不同,即指针函数与函数指针的意义不同。 指针函数 指针函数的本质是一个函数,其返回值是一个指针。...函数指针 函数指针其本质是一个指针变量,该指针变量指向一个函数。C程序在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。...是一个函数名,那么func与&func都表示的是函数的入口地址。...至于为什么func与&func的含义相同,《嵌入式Linux上的C语言编程实践》这本书中有如下解释: 对于函数func来说,函数的名称就是函数代码区的常量,对它取地址(&func)可以得到函数代码区的地址...以上就是关于指针函数与函数指针的简单区分。其中,函数指针广泛应用于嵌入式软件开发中,其常用的两个用途:调用函数和做函数的参数。----
一.函数 1.函数的概念 函数有时翻译为子程序。C语言中的函数就是一个完成某项特定任务的一小段代码。这段代码是有特殊的写法和调用方法的。...C语言的程序其实是由无数个小的函数组合而成,也可以说:应该大的计算任务可以分解成若干个较小的函数完成。同时,一个函数如果能完成某项特定任务的话,这个函数也是可以复用的,提升了开发软件的效率。...在C语言中我们一般会见到两类函数: 库函数 自定义函数 1.库函数 C语言标准规定了一组函数,这些函数再有不同的编译器厂商根据标准进行实现,提供给程序员使用。...这些函数组成了一个函数库,被称为标准库,这些函数也被称为库函数,这些库函数的使用,要包含对应的头文件。...2.自定义函数 其实自定义函数和库函数是一样的,形式如下: ret_type fun_name(形式参数)//ret_type是函数的返回类型,fun_name是函数名 { //函数体 } ret_type
接下来我们将通过许多例子来更加深刻的理解数组与函数的相关知识(以下均是本人写题时错的或者自己觉得适合初学者有价值的,仅供参考): 一、二分查找 我们先来展示普通的二分查找代码,我们想找到一个数组元素对应的下标...- easy_count) { printf("排雷成功\n"); print(mine, r, c); } } 五、VS一些实用的调试技巧 1、Debug与Release 首先我们要明白debug...编译错误,随着语言的熟练掌握,会越来越少,也容易解决。 *2、链接型错误 看错误提示信息,主要在代码中找到错误信息中的标识符,然后定位问题所在。...六、彩蛋 (函数递归) 1、初识递归 首先我们要先明白什么是递归,递归我们可以拆开成递推与回归,说大白话就是函数自己调用自己 接下来我们写一个最简单的递归程序: #include...int main() { printf("hello,world\n"); main(); return 0; } 这与我们第一次学习C语言时候的代码非常相似,但是这串代码不断打印hello,world
前言:经历了漫长的指针学习,终于能够开启新的内容了,本篇文章要讲的是字符函数与字符串函数。...平时刷题的过程中我们总会遇到一些字符串相关的问题需要字符串函数来解决,但却缺乏对那些字符函数的讲解别担心本篇我致力于搞定字符函数与字符串函数的问题,接下来我们就学习⼀下这些函数。...一,字符分类函数 C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。 这些函数的使⽤都需要包含⼀个头文件是 ctype.h。...这些函数的使用方法都非常类似下面以一个函数为例: 以 int islower ( int c ); 这个函数为例: 参数为int类型 ,通过ASCAII码来判断是否是小写。...\n"; char c; while (str[i]) { c = str[i]; if (islower(c)) { c -= 32; } putchar(c
1.字符分类函数 C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的,而这些函数的使用的需要包含一个头文件 这些函数的使用方法非常类似,就拿islower函数来举例... int islower(int c); islower是用来判断参数部分的c是否是小写字母的 如果返回值是小写字母就返回非0的整数,如果不是就返回0 #include #include...c语言中提供了2个字符转换函数: //将参数传进去的大写字母转小写字母 int tolower(int c); //将参数传进去的小写字母转大写字母 int toupper(int c); tolower...5.1 strncpy函数的使用(拷贝) 与strcpy相比,strncpy的参数多了一个num num:从source中最多拷贝几个 1.拷贝num个字符从源字符串到目标空间 2.如果源字符串的长度小于...char arr2[20] = "abcfhy"; int ret = strncmp(arr1, arr2, 6); printf("%d\n", ret); return 0; } 补充一下 在c语言中
字符分类函数 C语言中有⼀系列的函数是专门做字符分类的,也就是⼀个字符是属于什么类型的字符的。...这些函数的使用都需要包含⼀个头文件是 ctype.h 这些函数的使用方法非常类似,我们就讲解⼀个函数的事情: int islower ( int c ); islower 是能够判断参数部分的...字符转换函数 C语言提供了2个字符转换函数: int tolower ( int c ); //将参数传进去的大写字母转小写 int toupper ( int c ); //将参数传进去的小写字母转大写... 上面的代码,我们将小写转大写,是-32完成的效果,有了转换函数,就可以直接使用 tolower 函数。...\n"; char c; while (str[i]) { c = str[i]; if (islower(c)) c = toupper(c); putchar(c); i
函数的嵌套 在C语言中,所有函数都是相互平行,且相互独立的。在定义函数时,一个函数内不能再定义另一个函数,不能嵌套定义,但是可以嵌套使用。 例:编写一个求四个整数中最小值的函数,并在主函数进行调用。...#include int main(){ int min4(int a,int b,int c,int d); int a=3,b=4,c=1,d=6; printf...("min=%d",min4(a,b,c,d)); return 0; } int min4(int a,int b,int c,int d){ int min(int a,int b...); int m=a; m=min(m,b); m=min(m,c); m=min(m,d); return m; } int min(int a,int b){...b:a; } 函数的递归--->循环 在函数的调用过程中,出现一个函数调用自己本身的情况,就是在运行的过程中调用自己。
1.这个函数在遇到\0的时候并不会停下来 2.如果source和destination有任何的重叠,复制的结果都是未定义的 memcpy函数最终返回的是目标空间的起始地址 //函数的一种写法: 这个函数最终返回的是目标空间的起始地址...: //函数的一种写法: //这个函数最终返回的是目标空间的起始地址 void* my_memcpy(void *dest, const void*src, size_t num) { assert...,非要使用,结果就是未定义的 //只负责不重叠的内存 函数的返回值是void*类型的数据 这个memcpy函数有三个数据 2.memmove--内存移动--使用和模拟实现 2.memmove--内存移动...//总之:这个拷贝是分三块区域的,最前面的一块区域满足dest<src //我们只能从前往后进行拷贝,不然会出错误 //而剩下的两块区域可以同时从后往前进行拷贝,那么我们就将这两块区域放在一起 在C语言标准中...,明确规定了memcpy只要能实现不重叠的拷贝就行,重叠的拷贝交给memmove 我们发现vs上面的库函数memcpy函数也能实现重叠内存的拷贝 我们在以后的拷贝中,我们可以用memmove,因为不管是重叠的还是不重叠的都能搞定
c语言API查询 https://devdocs.io/c/types/boolean ?...Zeal 说明: 1、这个软件超级棒,是实时更新的,自己在用那种编程语言,就下载那种即可,下载后就可以离线查看。
2.函数调用:编译器现在认识foo了return0;}//3.函数定义:具体的实现voidfoo(void){printf("Hello\n");}二、形参、实参与值传递2.1核心机制:C语言只有值传递形参...=0){r.status=1;r.value=(double)a/b;}returnr;}四、作用域与静态变量4.1局部vs全局代码示例:展开代码语言:CAI代码解释intg_num=100;//全局变量...题目12:C语言支持函数重载(同名不同参,如add(int)和add(float))吗?题目13:将数组传递给函数时,实际上传递的是什么?...题目14:函数intfunc(void)和intfunc()在C语言(C99前)中有区别吗?题目15:编写一个函数is_prime(intn),判断n是否为素数,返回1或0。...详解:C语言中函数名是唯一的标识符,不能重名。这是C++的特性。题13解析答案:数组首元素的地址。详解:数组作为参数时会退化为指针。
前言 在 C 语言的世界里,函数就像是一个个功能强大的 “小助手”,它们各自承担着特定的任务,共同协作构建出复杂而高效的程序。...今天,就让我们一起深入探索 C 语言函数的奥秘,从基础概念到进阶应用,全面掌握这一重要的编程工具。 目录 1. 函数的概念 2. 库函数 2.1 库函数的定义 2.2 库函数的使用 3....C 语言中的函数与之类似,输入数据(参数),经过内部处理,输出结果。 C 语言程序通常由众多小函数组合而成,如同一个大型机器由许多小齿轮协同工作。...在C语言中我们一般会见到两种函数 库函数 自定义函数 2....库函数 2.1 库函数的定义 C 语言本身并不提供库函数,但 C 语言的国际标准 ANSI C 规定了一些常用函数的标准,不同的编译器厂商依据这些标准实现了相应的库函数。
前言: 函数是C语言编程的核心概念之一,也是构建复杂程序的基础。本文将系统讲解C语言的函数知识,助力大家快速掌握函数的使用方法。...一、函数的组成 C语言函数主要包含其中以下几个部分 二、函数的基本概念 在 C 语言中,函数可看作实现特定功能的独立代码单元。...标准库和头文件 C语言标准仅规定了语法规则,本身并不提供库函数的实现;而国际标准ANSI C则对常用函数制定了统一规范,这些规范构成了C语言的“标准库”。...库函数相关头文件: https://zh.cppreference.com/w/c/header/ 3.2 库函数的使用方法 学习与查阅库函数的工具十分丰富,常见的有: C/C++官方链接:https...在 C 语言开发的常规规范中,函数声明与类型声明通常置于头文件(.h),函数实现则置于源文件(.c)。
其实在C语⾔也引⼊函数(function)的概念,有些翻译为:⼦程序,⼦程序这种翻译更加准确⼀些。 C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码。...在C语⾔中我们⼀般会⻅到两类函数: 库函数 自定义函数 二、库函数 1.标准库和头文件 C语⾔标准中规定了C语⾔的各种语法规则,C语⾔并不提供库函数;C语⾔的国际标准ANSI C规定了⼀些常⽤的函数的标准...,被称为标准库,那不同的编译器⼚商根据ANSI提供的C语⾔标准就给出了⼀系列函数的实现。...,相关的函数和类型等信息,库函数的学习不⽤着急⼀次性全部学会,慢慢学习,各个击破就⾏ 2.库函数使用方法 库函数的学习和查看⼯具很多,⽐如: C/C++官⽅的链接:https://zh.cppreference.com...⼀个⽂件中;我们往往会根据程序的功能,将代码拆分放在多个⽂件中 ⼀般情况下,函数的声明、类型的声明放在头⽂件(.h)中,函数的实现是放在源⽂件(.c)⽂件中,如: //add.c文件 int
导读 : 这篇文章主要讲解一下C语言函数的一些基本知识。 前言:函数的概念 C语言中的函数又常常被称为子程序,是用来完成某项特定的工作的一段代码。...从函数的定义角度:我们可以把函数分为库函数和自定义函数 一,库函数: 库函数是由C语言编译系统提供的,已经有一定功能的,我们只需在程序前包含有该函数原型的头文件就可以直接使用这些函数。...("yeah"); // printf就是C语言提供的有打印功能的库函数,不需要我们自己定义 } 寻找C中的库函数及其有关的头文件的网址(C/C++官方的链接): http://zh.cppreference.com...2,实参列表中的参数(即实参)可以是变量,常量和表达式 3,实参之间用逗号隔开 4,在C语言中,出了main函数,其余的函数调用前要有函数声明(原型) 函数声明 ret_type name(形式参数...C语言中的函数之间都是平行的,不分上下级。
其实在C语言也引入函数(function)的概念,有些翻译为:子程序,子程序这种翻译更加准确一些。 C语言中的函数就是一个完成某项特定的任务的一小段代码。这段代码是有特殊的写法和调用方法的。...C语言的程序其实是由无数个小的函数组合而成的,也可以说:一个大的计算任务可以分解成若干个较小的函数(对应较小的任务)完成。...同时一个函数如果能完成某项特定任务的话,这个函数也是可以复用的,提升了开发软件的效率。 在C语言中我们一般会见到两类函数: 库函数 自定义函数 2....库函数 2.1 标准库和头文件 C语言标准中规定了C语言的各种语法规则,C语言并不提供库函数;C语言的国际标准ANSIC规定了一些常用的函数的标准,被称为标准库,那不同的编译器厂商根据ANSI提供的C语言标准就给出了一系列函数的实现...2.2 库函数的使用方法 库函数的学习和查看⼯具很多,比如: C/C++官方的链接: https://zh.cppreference.com/w/c/header cplusplus.com:https
函数概念 1. C语言中的函数就是:完成某项特定任务的一小段代码。 2. 类比一个小工厂,里面有已经设定好的特定的步骤,就是实现函数功能的过程。 函数分类 库函数 1....网址:https://zh.cppreference.com/w/c/header 。 2. 使用库函数时,需要引入包含该库函数的头文件。...//.c中存放主函数和自定义函数的调用。 //.c中主函数要加上 “.h” 的声明。 例如:写一个加法函数。...); printf("%d", c); return 0; } 存放主函数 c>文件 int add(int a, int b) { return (a + b); } 存放自定义函数...期待与您的交流,让我们共同成长,探索技术世界的无限可能!