Linux C语言:函数的基本用法及传参

一、函数的基本用法

1、main函数

int main(int argc, const char * argv[]) {
printf("Hello world\n");
return 0;
}

数据类型 函数名称 (参数) {
//....
return 表达式
}

2、函数

        函数是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。
一般形式如下:

<数据类型> <函数名称>( <形式参数说明> ) {
语句序列;
return[(<表达式>)];
}

  • <数据类型>是整个函数的返回值类型。
  •  return[(<表达式>)]语句中表达式的值,要和函数的<数据类型>保持一致。
  • 如无返回值应该写为void型
  • <形式参数说明>是逗号“,”分隔的多个变量的说明形式
  • 大括弧对 {<语句序列> },称为函数体;
  • <语句序列>是大于等于零个语句构成的

3、函数的调用 

函数的使用也叫函数的调用,形式如下:
        函数名称(〈实际参数〉)

  • 对于无返回值的函数来讲,只能形成一个函数调用语句。
  • 函数调用可以作为一个运算量出现在表达式中,也可以单独形成一个语句。
  • 实参就是在使用函数时,调用函数传递给被调用函数的数据。

4、函数的声明 

  • 函数的说明就是指函数原型
  • 其中,<形式参数说明>可以缺省说明的变量名称,但类型不能缺省
  • 例如:
    double power(double, int);

        编译器从上往下顺序进行编译 

二、函数的传参 

  •  函数是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。
  • 一般形式如下:
    <数据类型> <函数名称>( <形式参数说明> ) {
    语句序列;
    return[(<表达式>)];
    }

 1、什么叫形参

  • 形参全称为“形式参数”
  • 形参是在定义函数的时候使用的参数
  • 目的是用来接收调用该函数时传递的参数 

2、什么叫实参 

  • 实参,全称为"实际参数"。
  • 实参是在调用时传递给函数的参数,即传递给被调用函数的值。
  • 在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”。 

3、什么是参数传递 

  • 在程序运行过程中,将实际参数的值或者地址传递给被调用函数的形式参数,从而在函数中完成对数据处理和返回的过程。 
  • 在C语言当中,参数的传递方式本质上只有一种,就是值传递。
  • 但为了更好区分理解,划分了三种方式

4、函数的参数传递

1)函数之间的参数传递方式:

  • 全局变量
  • 值传递方式
  • 指针传递方式 


2)全局变量

  • 全局变量就是在函数体外说明的变量
  • 全局变量一经定义后就会在程序的任何地方可见。
  • 函数调用的位置不同,程序的执行结果可能会受到影响。不建议使用

三、函数传参-值传递 

1、值传递

  • 调用函数将实参传递给被调用函数,被调用函数将创建同类型的形参并用实参初始化 
  • 形参是新开辟的存储空间,在函数中改变形参的值,不会影响到实参

2、值传递方式的示意图 

  

四、函数传参-指针传递 

  • 按地址传递,实参为变量的地址,而形参为同类型的指针 
  • 被调用函数中对形参的操作,将直接改变实参的值
  • 被调用函数对指针的目标操作,相当于对实参本身的操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/701759.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Python修改word文档中的表格

使用Python编辑word文档中的表格 介绍效果代码代码解析 介绍 使用python修改word文档中的表格。 效果 修改前的word文档&#xff1a; 注意红框中的表格。 修改后的word文档&#xff1a; 表格内容已经修改。 代码 from docx import Document# 加载现有的Word文档 doc D…

electron基础使用

安装以及运行 当前node版本18&#xff0c;按照官网提供操作&#xff0c;npm init进行初始化操作&#xff0c;将index.js修改为main.js&#xff0c;执行npm install --save-dev electron。&#xff08;这里我挂梯子下载成功了。&#xff09;&#xff0c;添加如下代码至package.…

AI办公自动化:用Kimi批量在Excel文件名中加入日期

工作任务&#xff1a;在一个文件夹中所有的Excel文件后面加上一个日期 在Kimi中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;写一个Python脚本&#xff0c;具体步骤如下&#xff1a; 打开文件夹&#xff1a;F:\AI自媒体内容\AI行业数据分析\投融资 读取里面所…

电商核心技术系列58:电商平台的智能数据分析与业务洞察

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘相关系列文章合集&#xff08;3&#xff09; 电商核心技术揭秘56&#xff1a;客户关系管理与忠诚度提升 电商核心技术揭秘57:数…

Codeforces Round 951 (Div. 2) A~E

A.Guess the Maximum&#xff08;枚举&#xff09; 题意&#xff1a; 爱丽丝和鲍勃想出了一个相当奇怪的游戏。他们有一个整数数组 a 1 , a 2 , … , a n a_1,a_2,\ldots,a_n a1​,a2​,…,an​。爱丽丝选择了某个整数 k k k并告诉了鲍勃&#xff0c;然后就发生了下面的事情&…

UiPath发送邮件给多人时需要注意哪些限制?

UiPath发送邮件给多人的步骤&#xff1f;如何使用UiPath发信&#xff1f; 尽管UiPath提供了强大的邮件发送功能&#xff0c;但在批量发送邮件时&#xff0c;有一些限制和注意事项是我们必须了解的。AokSend将详细介绍这些限制&#xff0c;并提供一些优化建议。 UiPath发送邮件…

ArrayList和LinkedList的区别!!!

总结&#xff1a; 1、数据结构的实现 ArrayList&#xff1a;动态数组。 LinkedList&#xff1a;双向链表。 2、时间复杂度不同 ArrayList&#xff1a;O(1) LinkedList: O(n) ①&#xff1a;随机访问---- ArrayList > LinkedList &#xff08;ArrayList采用下标&#xff0…

frps 0.33

一个模拟示例 下载windows版本的frfps 需要准备的测试设备 一台frp服务器一台frp客户端PCsscom5.exe测试软件开2个,来模拟野外的设备和本地连接野外设备的软件。原理 frp服务器搭建了一条中转的桥梁,frp的客户端在本地做好端口映射后,本地的设备软件就可以连接到野外的设…

第34章-WLAN

1. 概述 2. WLAN模式 3. 相关概念 1. 概述 ① 定义WLAN(Wireless Local Area Network,无线局域网)&#xff0c;是一种技术&#xff1b; ② WLAN技术&#xff1a; Wi-Fi WAPI&#xff1a;中国强制标准&#xff1b; 例子&#xff1a;苹果手机 -- 设置 -- 国行(无线局域网设置) …

大众点评全国学习培训POI采集99万家-2024年5月底

大众点评全国学习培训POI采集99万家-2024年5月底 店铺POI点位示例&#xff1a; 店铺id k40VtNBN3bixFJIU 店铺名称 梦想钢琴成人钢琴(珠江新城总部) 十分制服务评分 9.4 十分制环境评分 9.4 十分制划算评分 9.4 人均价格 80 评价数量 6705 店铺地址 华穗路263号双城国…

Python酷库之旅-比翼双飞情侣库(01)

目录 一、xlrd库的由来 二、xlrd库优缺点 1、优点 1-1、支持多种Excel文件格式 1-2、高效性 1-3、开源性 1-4、简单易用 1-5、良好的兼容性 2、缺点 2-1、对.xlsx格式支持有限 2-2、功能相对单一 2-3、更新和维护频率低 2-4、依赖外部资源 三、xlrd库的版本说明 …

1 机器人软件开发学习所需通用技术栈(一)

机器人软件工程师技术路线&#xff08;如有缺失&#xff0c;欢迎补充&#xff09; 1. 机器人软件开发工程师技术路线 1.1 基础知识 C/C编程&#xff1a;掌握C/C语言基础&#xff0c;包括数据结构、算法、内存管理等。操作系统&#xff1a;了解Linux或Windows等操作系统的基本…

程序固化——FPGA学习笔记6

一、固化文件介绍 BIN:一般是由Vivado软件编译产生的&#xff0c;存储在特定目录下的二进制文件 MCS:一般通过VivadoGUl界面操作或者TCL命令生成&#xff0c;MCS文件里包含了BIN文件的内容&#xff0c;除此之外&#xff0c;每行的开始有地址信息&#xff0c;最后一个Byte是CRC校…

Java---BigInteger和BigDecimal和枚举

1.简介 1.BigInteger可以支持任意长度的整数 2.BigDecimal可以支持任意精度的浮点数 3.用来做精确计算 2.创建方式 new BigInteger(); new BigInteger(参数1,进制)&#xff1a;可以将不同进制转成10进制显示 new BigDecimal(); BigInteger.valueOf(); BigDecimal.valueOf();…

吴恩达2022机器学习专项课程C2W3:实验Lab_01模型评估与选择

这里写目录标题 导入模块与实验环境配置回归1.构建并可视化数据集2.分割数据集3.重新绘制数据集3.特征缩放4.评估模型&#xff1a;计算训练集的误差5.评估模型&#xff1a;计算交叉验证集的误差 添加多项式1.构建多项式特征集2.缩放特征3.使用标准化的计训练集和交叉验证集&…

搭建一个简单的深度神经网络

目录 一、引入所需要的库 二、制作数据集 三、搭建神经网络 四、训练网络 五、测试网络 本博客实验环境为jupyter 一、引入所需要的库 torch库是核心&#xff0c;其中torch.nn 提供了搭建网络所需的所有组件&#xff0c;nn即神经网络。matplotlib类似与matlab&#xff0…

136G全国1m土地覆盖数据

数据是GIS的血液&#xff01; 我们现在为你分享一个136G的全国土地覆盖数据&#xff0c;该数据的分辨率为1米&#xff0c;你可以在文末查看领取方法。 数据概况 为满足对更精确地感知国土面积的需求&#xff0c;来自武汉大学和中国地质⼤学的团队利用低成本的激光扫描仪&…

SAP CS01/CS02/CS03 BOM创建维护删除BAPI使用及增强改造

BOM创建维护删除相关BAPI的使用代码参考示例&#xff0c;客户电脑只能远程桌面&#xff0c;代码没法复制粘贴出来&#xff0c;只能贴图。 创建及修改BAPI: CSAP_MAT_BOM_MAINTAIN。 删除BAPI: CSAP_MAT_BOM_DELETE。 改造BAPI: CSAP_MAT_BOM_MAINTAIN 改造点1&#xff1a;拷…

[LitCTF 2023]Virginia(变异凯撒)

题目&#xff1a; 首先利用网站进行维吉尼亚解密&#xff08;第一段和第二段密钥不同&#xff0c;两段无关&#xff0c;可只解密第二段&#xff09; 第二段解密结果&#xff1a; Please send this message to those people who mean something to you,to those who have touch…

雪球产品可能要远离普通人了

最近有消息说&#xff0c;在年初发生大规模敲入事件后&#xff0c;雪球产品的购买门槛可能从300w提升至1000w。 那么在这个时间&#xff0c;了解一下雪球产品到底是什么&#xff0c;运行原理是什么。 第一种 经典雪球 经典雪球比较容易理解&#xff0c;设定好了固定的敲出条件…