网站系统优点扬州建设机械网站

张小明 2026/1/11 5:16:06
网站系统优点,扬州建设机械网站,ai智能生成图片免费网站,网站开发职业总结一.函数 函数的本质 在C语言当中#xff0c;我们可以把函数当做一个任务或者一个功能。 C语言中函数也是一样的#xff0c;给一个参数#xff0c;最终经过一系列步骤#xff0c;得到一个结果。整个过程其实…一.函数函数的本质在C语言当中我们可以把函数当做一个任务或者一个功能。C语言中函数也是一样的给一个参数最终经过一系列步骤得到一个结果。整个过程其实就是在完成一个任务或者特定的功能。1. 函数分类C语言中的函数大致分为2类库函数自定义函数2. 库函数2.1 标准库和头文件2.1 标准库和头文件标准库的概念C 标准库C Standard Library包含了一组头文件这些头文件提供了许多函数和宏用于处理输入输出、字符串操作、数学计算、内存管理等常见编程任务。C语言标准给出了一系列函数的实现这些函数就被称为库函数。我们前面内容中学到的printf、scanf都是库函数库函数也是函数不过这些函数已经是现成的我们只要学会就能直接使用了。有了库函数一些常见的功能就不需要程序员自己实现了一定程度提升了效率同时库函数的质量和执行效率上都更有保证。各种编译器的标准库中提供了一系列的库函数这些库函数根据功能的划分都在不同的头文件中进行了声明。库函数相关头文件https://zh.cppreference.com/w/c/header有数学相关的有字符串相关的有日期相关的等每一个头文件中都包含了相关的函数和类型等信息库函数的学习不用着急一次性全部学会慢慢学习各个击破就行。2.2 库函数的使用方法库函数的学习和查看工具很多比如C官方的链接https://zh.cppreference.com/w/c/headercplusplus.comhttps://legacy.cplusplus.com/reference/clibrary/h举例sqrt2.2.1 功能Compute square root (计算平方根)。Returns the square root of x. (返回x的平方根)。2.2.2 头文件包含库函数是在标准库中对应的头文件中声明的所以库函数的使用务必包含对应的头文件不包含是可能会出现一些问题的。sqrt函数需要包含头文件math.h。2.2.3 实践3. 自定义函数自定义函数的必要性库函数再多都不能满足程序员的特殊需求。这时候我们就得自己定义函数。3.1 函数的语法形式其实自定义函数和库函数是一样的形式如下函数语法格式ret_type fun_name(形式参数){// 函数体}ret_type是函数返回类型fun_name是函数名括号中放的是形式参数{}括起来的是函数体3.2 函数定义1. 写一个函数求2个整数的和2. 写一个函数求n的阶乘函数的名字最好见名思意不要花里胡哨。return的是结果同时也表示函数的结束。3.3 函数调用·上述只是函数的定义并不能被调用。我们以在main函数调用来进行举例。示例1#includestdio.h int add(int a, int b) { return a b; } int main() { int x 1; int y 2; //此处就是进行函数的调用 int ret add(x,y); printf(%d\n,ret); return 0; }函数调用需要使用函数名(参数列表)的方式进行调用。函数调用过程当中参数的个数、数据类型、顺序均要匹配。函数调用过程当中返回值类型要匹配。3.4 函数声明上述函数调用修改如下方式把函数的定义放在main函数之后。重新编译程序编译警告warning C4013: fac未定义假设外部返回 int原因C语言在编译的时候是自顶向下进行编译的。在编译到fac的时候编译器并没有看到fac函数的定义所以就会出现警告。解决方案函数声明解决办法就是在main函数之前进行声明提前告知程序函数是存在的。建议我们一般建议把main函数写到最后因为只要多一步操作就有一次错误的风险4. 实参和形参4.1 实参实参的定义实参即实际参数是在调用函数时传递给函数的真实值。它可以是常量、变量、表达式或函数返回值。在上述代码的 main 函数中调用 fac(a) 时的变量 a 就是实参。4.2 形参形参的定义形参即形式参数是在定义函数时函数名后面括号中的变量。它作为函数内部的局部变量用于接收调用时传入的实参值。在 int fac(int n)的函数定义中变量 n 就是形参。4.3 实参和形参的关系参数传递机制值传递在目前的知识储备之下我们可以理解为形参和实参是2个不同的内存空间。函数调用时实参把值传递给了形参形参是实参的一份临时拷贝。这个现象是可以通过调试来观察的。请看下面的代码和调试演示:验证示例尝试交换2个数重要提示因为形参只是实参的拷贝所以在函数内部修改形参的值无法影响到main函数中的实参。要解决这个问题我们得引入指针这个问题我们将在指针章节解决。5. 数组做函数参数在使用函数解决问题的时候难免会将数组作为参数传递给函数在函数内部对数组进行操作。比如写一个函数将一个整型数组的内容全部置为-1再写一个函数打印数组的内容。简单思考一下基本的形式应该是这样的改进后的main函数调用如下数组作为参数传递给了set_arr和print_arr函数了那这两个函数应该如何设计呢6. 嵌套调用和链式访问6.1 嵌套调用示例求数字n的阶乘和如5!的和为 1! 2! 3! 4! 5!1. 计算单个数字阶乘的函数2. 计算阶乘和的函数6.2 链式访问所谓链式访问就是将一个函数的返回值作为另外一个函数的参数像链条一样将函数串起来进行调用。这种方式可以使代码更紧凑。示例求n的阶乘的平方7. static 和 externstatic和extern都是C语言中的关键字。static (静态的)修饰局部变量修饰全局变量修饰函数extern (外部的)extern用于声明一个在其他源文件中定义的全局变量或函数。前置知识作用域与生命周期作用域是程序设计概念通常来说一段程序代码中所用到的名字并不总是有效可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。局部变量的作用域变量所在的局部范围如函数内部。全局变量的作用域整个工程项目。生命周期指的是变量的创建(申请内存)到变量的销毁(收回内存)之间的一个时间段。局部变量的生命周期进入作用域变量创建生命周期开始出作用域生命周期结束。全局变量的生命周期与整个程序的生命周期相同。7.1 static 的用法7.1.1 static 修饰局部变量对比下面两段代码的效果可以理解static修饰局部变量的意义。对比代码1和代码2的效果理解static修饰局部变量的意义。代码1的test函数中的局部变量i是每次进入test函数先创建变量生命周期开始并赋值为0然后再打印出函数的时候变量生命周期将要结束释放内存。代码2中我们从输出结果来看i的值有累加的效果其实 test函数中的i创建好后出函数的时候是不会销毁的重新进入函数也就不会重新创建变量直接上次累积的数值继续计算。结论结论static修饰局部变量改变了变量的生命周期生命周期改变的本质是改变了变量的存储类型本来一个局部变量是存储在内存的栈区的但是被static修饰后存储到了静态区。存储在静态区的变量和全局变量是一样的生命周期就和程序的生命周期一样了只有程序结束变量才销毁内存才回收。但是作用域不变的。使用建议未来一个变量出了函数后我们还想保留值等下次进入函数继续使用就可以使用static修饰。7.1.2 static 修饰全局变量extern是用来声明外部符号的如果一个全局的符号在A文件中定义的在B文件中想使用就可以使用extern进行声明然后使用。代码1正常代码2在编译的时候会出现链接性错误。结论一个全局变量被static修饰使得这个全局变量只能在本源文件内使用不能在其他源文件内使用。 本质原因是全局变量默认是具有外部链接属性的在外部的文件中想使用只要适当的声明就可以使用但是全局变量被static修饰之后外部链接属性就变成了内部链接属性只能在自己所在的源文件内部使用了其他源文件即使声明了也是无法正常使用的。使用建议如果一个全局变量只想在它所在的源文件内部使用不想被其他文件意外地访问或修改就可以使用static修饰。8. 多文件下的代码书写在公司日常开发过程当中我们经常会涉及多文件下的代码书写项目代码不可能只放在一个.c文件中。新建fac.c文件把阶乘代码放进去。按照上述方法可以通过extern关键字进行声明。那如果fac.c中再有一个函数呢决方案使用头文件为了解决多个extern声明带来的管理问题我们可以使用头文件.h文件来统一管理所有外部函数的声明。定义fac.h(头文件)定义fac.c(源文件)test.c实现方式这样就解决了多个extern带来的问题。问题使用尖括号引入头文件和使用双引号引入头文件的区别是什么主要区别在于编译器搜索头文件的路径和顺序不同使用双引号时编译器会按照以下顺序查找头文件当前目录首先在包含此#include指令的源文件所在的目录中查找。系统目录如果在当前目录中没有找到该文件编译器会接着到系统指定的标准包含目录中查找这个过程和使用尖括号一样。使用场景通常用于包含项目自定义的头文件。因为这些头文件通常与源文件存放在同一个项目目录或其子目录中。使用尖括号时编译器只会在系统指定的标准包含目录中查找头文件。 它不会在源文件所在的当前目录中查找。这些标准目录通常包括1. 编译器安装时自带的头文件目录例如 /usr/include。2. Windows上安装的目录比如我们可以找到stdio.h的所在的目录。(具体方法可以右键代码中的stdio.h打开该文件从而打开文件所在目录)3.使用场景通常用于包含C标准库头文件或外部库的头文件。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

成都网站建设电话企业网络营销业务

720亿参数重构AI效率边界:盘古Pro MoE如何开启大模型工业化时代 【免费下载链接】openPangu-Pro-MoE-72B-model openPangu-Pro-MoE (72B-A16B):昇腾原生的分组混合专家模型 项目地址: https://ai.gitcode.com/ascend-tribe/pangu-pro-moe-model 导…

张小明 2026/1/10 1:09:45 网站建设

网站开发cms哈尔滨网站建设v5star

KaTrain围棋AI训练平台:从零开始的智能对弈进阶指南 【免费下载链接】katrain Improve your Baduk skills by training with KataGo! 项目地址: https://gitcode.com/gh_mirrors/ka/katrain 想要通过AI技术系统提升围棋水平?KaTrain作为基于KataG…

张小明 2026/1/5 21:55:12 网站建设

零基础 网站怎么添加网站备案号

Linly-Talker生成视频的镜头拉近推远动态效果实现 在当前AI内容创作高速发展的背景下,数字人已不再是实验室里的概念演示,而是逐步渗透进教育、电商、金融等实际业务场景中的生产力工具。用户不再满足于“能说会动”的基础表现,而是期待更具影…

张小明 2026/1/5 21:55:13 网站建设

公司网站建设外包流程图wordpress 换模板

今天自己手动部署了jenkins和Docker,实现CICD,结果发现一个问题,如果单个运行测试类是没有问题的,但是批量运行就会失败。报错信息如下所示,提示定位元素超时了。最后我发现是批量运行时,保存的cookie失效了…

张小明 2026/1/5 21:55:14 网站建设

可做实名认证的网站巨蟹座适合网站建设吗

9 个专科生课堂汇报工具推荐,AI 写作降重神器 当论文遇上时间,你是否也在挣扎? 对于专科生来说,课堂汇报、论文写作、文献综述这些任务早已成为学习生活中的“常态”。但面对这些任务时,很多人却常常感到力不从心。尤其…

张小明 2026/1/5 22:15:30 网站建设

鞍山网站制作小程序眉县网站开发

深入掌握 palera1n:iOS设备越狱全攻略与实战技巧 【免费下载链接】palera1n Jailbreak for arm64 devices on iOS 15.0 项目地址: https://gitcode.com/GitHub_Trending/pa/palera1n palera1n 是一款专为 arm64 架构 iOS/iPadOS/tvOS 设备设计的越狱工具&…

张小明 2026/1/5 21:55:17 网站建设