黑马程序员——C语言笔记之函数

黑马程序员——C语言基础教程笔记 黑马程序员——C语言基础教程笔记 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录黑马程序员——C语言基础教程笔记前言Day-11.C语言概论1.1 什么是C语言1.1.1 C语言特点1.1.2 学习C语言的理由1.1.3 发展方向1.1.4 C语言中的关键字2.3.Day-21.引入库2.读入数据总结 前言 研三了,作为一枚菜鸡硕,为了找工作,只好重刷C语言。以下笔记是我在“黑马程序员:http://yun. 阅读详情

------- android培训、java培训、iOS培训、.Net培训、期待与您交流! ----------

1、函数的概念

完成特定功能的代码段,它也是组成我们C语言源程序的基本单位

优点:

1)高程序的可读性

2)可以高开发的效率

3)提高代码重用性 

2、函数的定义格式:

返回值 函数名(形参列表){

函数体;

//return

}

按照有参数和返回值可分为四种:

有参无返回值:void test(int x,float y){ }

无参无返回值:void test1(){ }

有参有返回值:int max(int x,int y){ return x>y?x:y; }

无参有返回值:int test2(){ return 10;}

3、函数的参数

1)形参和实参

形参:在定义函数的时候,函数名后面小括号中的参数

void test(int x,float y){ } 

实参:调用函数的时候传递的参数

max(56,78); //56、78就是两个实际参数

2)参数的传递过程实质是,将实参的值拷贝一份放到函数形参中

4、函数的返回值

主调函数:

A、B两个函数 ,如果在A中调用了B,A为主调函数,B为被调函数。

被调函数:

被调函数返回给主调函数的值叫做函数的返回值
使用return 关键字进行返回

1) return 0; return (0);

2) return a+b; return a>b?a:b;

3) 如果函数的返回值是 void return ;(程序返回了,不再向下执行)

4) 函数中可以有多个return,但是只有一个起作用。

5、函数的调用

1)函数的声明:

为什么要进行声明?

类似于变量的使用,我们要使用函数,就应该先定义函数,编译器不知道我们是否已经定义了某个函数,为了防止编译器编译的时候报错(函数调用),所以要告诉编译器,我已经定义了哪些函数。

原则:

在调用函数之前,进行该函数的声明。

声明的方法:

技巧:复制函数的头部,加上分号,写在调用方法之前

int max(int x,int y); //声明

2)函数的调用:

格式:函数名(实参列表);

max(56,78); //调用

6、递归函数

一个函数在它的函数体内调用它自身称之为递归函数。

构成条件:

1)自己调用自己

2)存在一个条件能够让递归结束

3)能够找到一个规律,让要解决的问题的规模缩小

递归函数的执行有两个阶段:

1)递推阶段:问题规模缩小的过程

2)回归迭代:迭代计算值的过程

递归的优点和缺点:

优点:遇到问题规模能够缩小,而且有规律的问题的时候,代码比较简洁。

缺点:太耗内存

建议:在程序中不能用太多 

#include <stdio.h>
//用递归法求n得阶乘
// 5!
// 5*4!
// 第一个:递归退出的条件:1! = 1
// 第二个:n! = (n-1)!*n
// 第三个:自己调用自己
int jieCheng(int n){
    int ji;
    //判断n==1,如果n=1,阶乘的结果就是1
    if (n==1) {
        ji = 1;
    }else{
        //如果n != 1,前一个数的阶乘乘以当前的n的值
        ji = jieCheng(n-1)*n;
    }
    return ji;
}
//求 x的y次方
int xy(int x,int y){
    int ji;
    //判断y==1
    if (y==1) {
        ji = x;
    }else{
        // 如果y !=1 此时,计算x的y-1次方 乘以 x
        // x y   x y-1 *x
        // 2^3   2^2   *2
        ji = xy(x,y-1)*x;  
    }
    return ji;
}
int main(int argc, const char * argv[]) {
//    int ji = jieCheng(8);
    int ji = xy(2,7);
    printf("ji = %d\n",ji);
    return 0;
}


用V E S C 6-M K V I 第六代调速控制器给VESC电调刷固件 文章摘要:本文介绍了一款先进的电机控制器,具备多项创新技术。核心亮点包括三相电流/电压检测、四象限无缝运行、多模式兼容等先进电机控制技术,以及智能感知与安全保护、高效能电源管理、多样化连接与扩展功能。此外,该控制器支持实时数据监测与用户交互,具备开源生态和工业级可靠性,适用于电动载具、机器人及工业领域。用户需注意散热要求和兼容性提示,可通过VESC-Tool软件进行灵活配置。产品可在常竹科技淘宝店购买,并加入技术交流群获取支持。 阅读详情

相关推荐

Python爬取网页数据并写入Excel

ChromeDriver下载链接:https://registry.npmmirror.com/binary.html?path=chromedriver/本例是从Excel表从读取数据,运用到网页中进行搜索,再将结果写入Excel表中。这里要先下载与Chrome版本相同的chromedriver(版本要相同!下载好后,将chromedriver路径正确配置在环境变量中。刚才爬了一些数据,分享一下代码。

weixin_68443051的博客 2519

在C语言中,程序的执行总是从main()函数开始。main()函数是C程序的入口点,它是程序执行的起点

当程序执行到函数调用时,它会跳转到该函数的代码块并执行函数中的代码,直到函数执行完毕或遇到return语句返回main()函数或其他函数。当函数定义中包含指针参数时,函数内部可以对指针指向的变量进行修改,从而改变调用代码中的变量值。当函数执行完毕时,控制权将返回调用该函数的代码行,程序将继续执行。代码区用于存储程序的二进制代码,数据区用于存储初始化的全局变量和静态变量,而BSS区用于存储未初始化的全局变量和静态变量。总之,C语言的执行过程是从main()函数开始,按照代码定义的顺序逐行执行代码。

博客域名:borter.blog.youkuaiyun.com 5467

【iOS开发】dyld: Symbol not found: ___chkstk_darwin 问题解决

【iOS开发】dyld: Symbol not found: ___chkstk_darwin 问题解决 Xcode 13.2.1 运行到iOS12.x版本上崩溃报错如下:dyld: Symbol not found: ___chkstk_darwin dyld: Symbol not found: ___chkstk_darwin Referenced from: /private/var/containers/Bundle/Application/A424CEFD-51DB-450E-9D62-B8

wm9028的专栏 6563

C/C++函数调用中的主调函数、被调函数、形参与实参

1.主调函数与被调函数 这是一个相对的概念,调用者叫主调函数,被调用者叫被调函数,一个函数可以是主调函数也可以是被调函数。 2.形参与实参 形式参数(简称“形参”) 在定义函数时函数名后面括号中的变量称为“形式参数”。 实际参数(简称“实参”) 在主调函数中调用被调函数时,函数名后面括号中的参数称为“实际参数”。实际参数可以是常量、变量或表达式。 3.函数调用 在函数调用过程中,系...

52赫兹问候的博客 1万+

深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践

在异构计算领域,Zynq-7000系列SoC的AMP(Asymmetric Multiprocessing)模式堪称多核编程的瑞士军刀。独立运行环境:CPU0运行Linux,CPU1运行FreeRTOS或裸机程序硬件资源独占:CPU0管理DDR,CPU1使用OCM(片上内存)中断隔离:默认所有中断路由到CPU0这种架构非常适合需要实时响应的工业控制系统——比如用CPU0处理网络通信,CPU1负责电机控制。AMP模式下中断路由的底层原理多维度性能优化技巧工业级可靠性的实现方案。

QQ_778132974的博客 491

RK3588 buildroot 制作的系统增加 docker 支持

RK3588 使用buildroot制作的系统添加 docker 和 docker-compose 的功能

荻夜的博客 1567

c语言函数调用题文本文库,c语言-第8章--函数习题.doc

c语言-第8章--函数习题.doc下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档,不会出现我们的网址水印。3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。文档包含非法信息?点此举报后获取现金奖励!下载文档到电脑,查找使用更方便20积分还剩页未读,继续阅读关...

weixin_33520849的博客 660

OpenMM | PDBFixer 用于蛋白质预处理

PDBFixer 用于蛋白质预处理

DrugOne 3006

c语言中的主调函数与被调函数

被调用的函数为被调函数,调用该函数的函数为主调函数。。 这样说可能让人一脸懵逼 举例:   main()   { float a,b;   int c;   scanf("%f,%f",&a,&b);   c=max(a,b);   printf(“Max is %d\n”,c);   } int max(float x, float y)   { float z;   z...

爱党人士 3万+

LVGL 拨盘菜单(Dial Menu)

h。

摸鱼专家 191

即插即用系列(代码实践)| 2025 Strip R-CNN:大尺寸条形卷积——遥感目标检测新SOTA,专治细长目标(桥梁、船只)

摘要: 论文《Strip R-CNN: Large Strip Convolution for Remote Sensing Object Detection》针对遥感图像中细长目标(如桥梁、道路)检测难题,提出创新性解决方案。通过设计StripBlock模块,将传统方形卷积核替换为大尺寸条形卷积(水平1×19与垂直19×1组合),有效捕获长距离空间特征,同时减少背景噪声。结合CenterPooling增强目标中心定位,该模块可即插即用至现有网络,显著提升遥感检测任务(如DOTA数据集)的精度。代码已开源,

分享顶会顶刊论文即插即用模块 189

小用lambda函数

当函数只有一句代码,并且含有一个返回值时可以利用lambda函数 print((lambda a, b = 1: a + b)(1, 2)) 此时输出为3 a和b相当于python函数里的参数

weixin_48445640的博客 686

单片机应用案例:ESP32 搭配 BH1750 光强传感器和 Web 服务器

在该应用案例中,我们将使用 ESP32 开发板作为主控制器,BH1750 光强传感器用于采集环境光强度数据,并通过 Web 服务器展示采集到的数据。步骤一:购买材料步骤二:连接硬件步骤三:编写代码我们将使用 Arduino IDE 编写代码,以下是主要代码:// WiFi 设置const char* ssid = “你的 WiFi 名称”;const char* password = “密码”;// Web 服务器实例// BH1750 实例// 获取当前光强度数据。

RlDart的博客 813

黑马程序员—C语言笔记—函数

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

lan_wen963的专栏 788

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

黑马程序员——C语言笔记之scanf函数及使用注意事项

------- android培训、java培训、期待与您交流! ---------- 1、scanf函数(阻塞式函数) scanf函数原型包含在标准输入输出头文件“stdio.h”中,用于接受键盘输入的内容。 格式:scanf("格式控制字符串",输入项地址列表); scanf函数格式控制符:  使用scanf函数时不能指定%m.n格式,只能指定%m格式,如

林涵的博客 1163

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【黑马程序员】C语言学习笔记之函数(八)

--------------------------------------------IOS期待与您交流!-------------------------------------------- 一、基本概念 1.什么是函数 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。

kqygww的专栏 1076

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

黑马程序员——C语言函数的返回值笔记和练习题

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------1)、函数的返回值要点:1. 函数的值只能通过return语句返回主调函数。return语句的一般形式为: return 表达式 或者为: return (表达式);2. 函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数返回类型为准,自动进行类型转换。2)、函数的形参与实参:

caizexu12345的博客 823

黑马程序员----C 语言学习笔记之指针函数与函数指针

一、指针函数 1.返回指针的函数称为指针函数   2.指针函数的定义 一般形式为: 类型说明符 *函数名(形参表){ /*函数体*/ } 例如: //返回两个数中最大数的地址 int *sum(int a, int b){ return a > b ?&a : &b; } int *sum2(int *a, int *b){ ret

chunhuayun的专栏 330

黑马程序员----C语言学习笔记之函数

C语言之函数 1.函数的概述 C源程序是由函数组成的。可以说C程序的全部工作都是由各种各样的函数完成的,所以也把C语言称为函数式语言。 2.函数的分类 2.1从函数定义的角度看,函数可分为库函数和用户自定义函数两种 库函数:由C系统提供,用户无须定义,也不低在程序中左类型说明,只需要在程序前包含有该函数原型的头文件即可直接调用。如:printf,scanf等 用户自定义函数:由用户按需

chunhuayun的专栏 619

黑马程序员-ios学习笔记-C语言scanf函数

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 越先定义的变量地址越大 内存寻址有大到小,优先分配内存地址比较大的字节给变量 取得变量地址;&变量名 输出变量地址:%p &:是一个地址运算符,是为了取得变量的地址 %p:用来输出地址 printf(“a的地址是:%p”,&a); printf函数用来输出 scanf函数用来输

lengnuanzizhi365的专栏 563

黑马程序员——C语言笔记之printf函数与格式控制符

------- android培训、java培训、期待与您交流! ---------- 1、printf函数介绍 printf函数是一个标准库函数,能够以精确的格式输出程序运算的结果。  printf函数的调用格式为:printf("格式控制字符串",输出项列表); 2、格式控制符使用说明 printf的格式控制的完整格式: 1. %:表示格式说明的起始符号,不可缺

林涵的博客 1009

12-黑马程序员------C 语言学习笔记--- C语言指针与函数

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ------- 六 指针与函数 01 指针作为函数参数 指针作为实参时,与普通变量一样,也是采用单向的值传递方式,即将指针变量的值(该值是一个地址)传递给被调函数的形参...

weixin_34358092的博客 120

黑马程序员——C语言学习笔记02 控制语句:分支、跳转、循环和函数一些需要注意的问题

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1、多个连续的if else if else if 的执行顺序: 从上往下执行,知道某个if判断成立,就结束判断,不会继续下面的判断。 2、if和switch中变量的作用域问题: C编译器判断变量作用域是通过大括号来判断的,所以在if或switch后面直接定义新的变量,而不用大括

gjgoodjob271的博客 579

10-黑马程序员------C 语言学习笔记--- C语言函数的声明和原型

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ------- 三 函数的声明和原型 01 在函数调用之前,应该对所调用函数进行声明,指出该函数的返回值类型及形参的个数和类型。 函数声明的一般格式: 函数返回值类型...

weixin_34292959的博客 123

黑马程序员-C语言学习笔记-----内存分配函数(malloc、calloc、realloc)

了解malloc、calloc、realloc动态内存分配函数 三个函数在stdlib.h中的声明如下:   void* realloc(void* ptr, unsigned newsize);     void* malloc(unsigned size);     void* calloc(size_t nelem, size_t elsize); (1)malloc函数:

wenfeng340的专栏 586

【黑马程序员】C语言学习笔记(2) - 指针

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------     指针是C语言提供的一种数据结构,其功能与一般的数据类型不一样的地方就在于它存储的是变量的内存地址。我对指针的概念理解如下图所示: 对应上图我们可以使用如下的代码来解释: #include int main() { int a = 11; int *p =

Little__Coder的博客 666
上一篇: 黑马程序员——C语言笔记之循环结构
下一篇: 黑马程序员——C语言笔记之预处理指令和模块化编程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值