当前位置: 首页 > news >正文

C语言-函数的嵌套调用,链式访问,函数的声明和函数的定义

以下是我初学C语言的笔记记录,欢迎在评论区留言补充

一,函数的嵌套

一个函数嵌套另一个函数的调用

【注意】

(1)不能在一个函数中再定义一个函数,只能在一个函数中调用一个函数;

(2)函数的位置都是平等的,所以可以嵌套调用,但是不能嵌套定义

//函数的嵌套调用
#include<stdio.h>
void test1()
{printf("hhh\n");}
void test2()
{int i = 0;for (i = 1; i <= 3; i++){test1(); //函数的调用}
}
int main()
{test2();return 0;
}

二,函数的链式访问

(1)什么是链式访问?

链式访问像一个串条,将函数串起来,需要用到返回值,返回值给到一个函数;

一个函数的返回值作为另一个函数的参数

 

为什么结果是4321?

【毫无疑问,橙色输出结果为43,即43以%d的形式打印,而绿色表示的含义是将橙色的结果以%d打印,即printf的返回值以%d的形式打印,而printf的返回值为输出内容的总个数,所以,绿色部分输出为2,同理,蓝色输出为1】

三,函数的声明和定义

(1)什么是函数的声明,什么时候用它?

一般情况下,自定义函数写在main函数前,而且编译器是从上到下进行扫描,进行执行代码的,如果把自定义函数写在main函数的后面,那么,在调用函数,并且程序执行的时候,就不知道自定义函数的位置在哪里,虽然后面可以扫描到,但是会出现警告,这个时候,就用到了函数的声明【函数的返回类型,函数名,形参类型】写在main函数前就可以;

#include<stdio.h>
int Add(int, int);//函数的声明
//返回值类型,函数名,形参类型,至于x,y写不写上都可以
int main()
{int i = 0;int j = 0;int sum = 0;sum = Add(3, 4);printf("%d", sum);return 0;
}int Add(int x, int y)
{return x + y;
}

(2)函数的声明格式

只需要有返回值类型,函数名,形参类型

(3)函数的声明可以放在头文件中

一来,可以模块化方便管理,二来,可以对自己写的函数代码进行了一个保护;

将函数声明放在头文件中,其实相当于是将函数声明拷贝一份在头文件中

(4)函数的声明注意点

告诉我有这么一个函数,但是声明是声明,具体有没有这么一个函数,关键是,是否进行了函数的定义

(5)什么是函数的定义?

函数的定义就是创建一个自定义函数;

比如下面的Add函数

#include<stdio.h>
int Add(int, int);//函数的声明
//返回值类型,函数名,形参类型,至于x,y写不写上都可以
int main()
{int i = 0;int j = 0;int sum = 0;sum = Add(3, 4);printf("%d", sum);return 0;
}//函数的定义
int Add(int x, int y) 
{return x + y;
}

【琐碎记录】

*  函数不写返回值的时候,默认返回类型是int;

*  本质上main函数是有参数的,且有三个参数;

*  自定义的头文件要用“”;库函数的头文件要用<>;

 * 先声明后使用 ;

相关文章:

  • pymsql(SQL注入与防SQL注入)
  • AI大模型:(二)2.4 微调自己的模型
  • astrbot_plugin_composting_bucket开源程序是一个用于降低AstrBot的deepseek api调用费用的插件
  • 机器视觉的坐标标定
  • GCN+PyG 的安装与使用
  • Debian10系统安装,磁盘分区和扩容
  • 英语学习4.28
  • CUDA、pytorch、配置环境教程合集
  • Windows避坑部署SkyworkAI/SkyReels-V2昆仑万维电影生成模型
  • 初识Python
  • 【人工智能】边缘智能的突破:Ollama模型压缩技术与DeepSeek部署实践
  • 前端如何使用Mock模拟数据实现前后端并行开发,提升项目整体效率
  • Java写项目前的准备工作指南(技术栈选择 环境搭建和工具配置 项目结构设计与模块划分)
  • 高压开关柜局部放电信号分析系统
  • 解决leensa无法使用的办法:平替教程
  • [多彩数据结构] 笛卡尔树
  • 城市群出行需求的时空分形
  • 【图像融合】基于非负矩阵分解分解 CNMF的高光谱和多光谱数据融合附MATLAB代码
  • C++面试常青客:LRUCache最近最少使用算法
  • AG32VF407VG的VREFP是否可以输入2.5V的参考电压
  • 五一假期上海推出首批16条“市民健康路线”,这些健康提示请收好
  • 大学男生被捉奸后将女生推下高楼?桂林理工大学辟谣
  • 新任浙江省委常委、组织部长杨荫凯到嘉兴南湖瞻仰红船
  • 伊朗外长:美伊谈判进展良好,讨论了很多技术细节
  • 铜钴巨头洛阳钼业一季度净利润同比大增九成,最新宣布超30亿元收购黄金资产
  • 证券时报:落实“非禁即入” ,让创新活力充分涌流