【C语言/C++学习】函数(一)_c语言函数和c++函数学习方法-程序员宅基地

技术标签: c++  c语言  开发语言  

1、引言

 写了这么些篇博客,今天终于会给自己的博客加目录了,希望自己今后的博客能够越写越好,分享的知识也越来越多。

2、函数

2.1、函数的定义

 函数是一个大型程序中的某部分代码,由一个或多个语言块组成,它负责完成某项特定的任务,而且相较于其他代码具有相对独立性
 函数一班会有输入参数并有返回值,提供对过程的封装和细节的隐藏。

2.2、库函数

 库函数是C语言自带的函数,对与库函数学习最好的方法就是查文献
 www.cplusplus.com
 zh.cppreference.com
 en.cppreference.com
 在这几个网站上可以查到C语言全部库函数的具体用法。
 tips:size_t是无符号整型的返回类型(无符号整型就是不管正负号)
      int有符号整型的返回类型(在打印时,%u打印的是无符号整型,%d打印有符号整型)

2.3、自定义函数

 自定义函数是学习C语言的重中之重,自定义函数与库函数一样,有**函数名**,有**返回类型**,有**参数**
ret_type fun_name(para1,*)
{
    
   statement;//语句项
}

其中,ret_type 表示返回类型,fun_name 表示函数名,para1 表示函数参数,大括号内的是函数体

3、函数的参数

3.1、实际参数(实参)

 真实传给函数的参数,叫实参。实参可以是常量,变量,表达式,函数等,无论实参是什么类型的量,当调用函数的时候实参都必须有确定的值,以便把这些值传给形参。

3.2、形式参数(形参)

 形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的时候才分配内存单元(有实际作用),所以被叫做形式参数,形参在函数被调用完成之后就自动销毁了,因此形参旨在函数中有用。(形参只能是变量)

4、函数调用

4.1、传值调用

 函数的形参和实参分别占用不同的内存块,对形参的修改不会影响到实参。

4.2、传址调用

 1、传址调用把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
 2、这种传参方式,函数内部可以直接操作函数外部的变量。

小知识

1、函数调用原理

 实参:全称为“实际参数”,是在调用时传递给该函数的参数
 形参:全称为“形式参数”,实在定义函数名和函数体是用到的参数,目的是接受调用该函数是传来的参数。
 形参和实参的类型必须要一致
 1、函数调用的时候,当形参和实参不是指针类型的时候当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中处于不同的位置,形参其实是实参的一份临时拷贝,所以对形参的修改不会影响实参。
 2、而如果函数的参数是指针类型变量,在调用该函数的过程中,传给形参的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身,所以在函数体内部可以改变实参的值

2、小练习

2.1、二分查找

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/C1494717147/article/details/121199990

智能推荐

深度学习基础--正则化与norm--L2归一化、L2正则化、L2范数的区别_norm_l2-程序员宅基地

文章浏览阅读2.9k次。L2归一化、L2正则化、L2范数的区别  1)归一化是将数据变到一定的区间内,故是x除以||x||_2。  2)正则化是在优化时所使用的概念,称为正则化方法,而不是指某种具体的数据运算,概念比归一化要高一层。  3)L2范数指的是公式意义上的||x||_2。..._norm_l2

【杂七杂八】excel中根据RTL信号位宽生成拼接取位_rtl语法 位宽拼接-程序员宅基地

文章浏览阅读398次。前言作为一个不务正业的芯片前端,总会遇到掉奇奇怪怪的需求,就比如题目这个啊,我写完之后就觉得非常的拗口。那么具体的需要是啥呢?就是比如说有了下面这个excel表:信号名 width sig0 3 sig1 10 sig2 14 sig3 20 sig4 8 要直接做一列生成前面几个信号在整体信号中的取位信息,简单来说就是这样:信号名 width local sig0 3 [2:0] sig1 10_rtl语法 位宽拼接

go WaitGroup的坑-程序员宅基地

文章浏览阅读2.3k次。go WaitGroup的使用请参考笔者的另外一篇博客go WaitGroup的使用示例这里重点讲一下WaitGroup的注意点,以免被坑示例代码如下:package mainimport ( "log" "sync")func main() { wg := sync.WaitGroup{} for i := 0; i < 5; i++ { wg.Add(..._waitgroup的坑

升级libc.so.6和libstdc++.so.6方法_deepin 升级libstdc++6-程序员宅基地

文章浏览阅读8.2k次。解决"libc.so.6: version `GLIBC_2.14' not found"问题转载自https://www.cnblogs.com/Mrhuangrui/p/7766554.html试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:问题Ce..._deepin 升级libstdc++6

快速学习STL-程序员宅基地

文章浏览阅读386次。STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆括弧的方式表示,例如sort()。STL另一个重要特性是它不是面向_学习stl

React-基础语法学习-程序员宅基地

文章浏览阅读1.0k次,点赞21次,收藏29次。1、教程:井字棋游戏1、教程:井字棋游戏本教程将引导你逐步实现一个简单的井字棋游戏,并且不需要你对 React 有任何了解。在此过程中你会学习到一些编写 React 程序的基本知识,完全理解它们可以让你对 React 有比较深入的理解。1.1、教程分成以下几个部分:配置是一些准备工作。概览介绍了 React 的:组件、props 和 state。完成游戏介绍了 React 开发中。添加时间旅行可以让你更深入地了解 React 的独特优势。1.2、实现的是什么程序?

随便推点

YOLOV3只检测人_yolo v3检测人体-程序员宅基地

文章浏览阅读3.2k次。https://www.cnblogs.com/tenderwx/p/7278447.html最后输入:./darknet detect cfg/yolov3.cfg yolov3.weights ./data/person.jpg/home/qinhaidong/darknet/predictions.jpg_yolo v3检测人体

java - 注解实现分布式锁_java使用注解实现redisson分布式锁-程序员宅基地

文章浏览阅读730次,点赞31次,收藏15次。分布式锁是分布式环境中解决资源共享问题的一种机制。在一个分布式系统中,有时多个进程,可能会同时访问同一份资源,例如,读写同一个数据库记录,或者获取和修改同一个文件。为了避免并发访问引起的数据不一致问题,我们需要用到分布式锁。一次只有一个进程能够获得锁,进而保证有序地、原子性地操作资源。_java使用注解实现redisson分布式锁

计算机三级网络技术知识点大全(九)_知识点三级-程序员宅基地

文章浏览阅读6.2k次,点赞3次,收藏22次。网络安全技术1、 网络安全的基本要素主要包括:保密性、完整性、可用性、可鉴别性和不可否认性。2、 信息泄露与篡改:截获信息、窃听信息、篡改信息和伪造信息。3、 在Internet中对网络的攻击可以分为2种基本类型,即服务攻击(造成拒绝服务Dos,典型的是SYN)与非服务攻击(对网络层等底层协议进行攻击)。4、 信息的安全传输包括两个基本部分:(1)对发送的信息进行安全转换(如信息加密),实现信息的保密性。或者附加一些特征信息,以便进行发送方身份验证。(2)发送和接收双方共享的.._知识点三级

已解决java.util.concurrent.CompletionException异常的正确解决方法,亲测有效!!!-程序员宅基地

文章浏览阅读3k次,点赞23次,收藏27次。已解决java.util.concurrent.CompletionException异常的正确解决方法,亲测有效!!!_completionexception

Android ConstraintLayout 约束布局 1-程序员宅基地

文章浏览阅读987次,点赞8次,收藏24次。对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!最后,我再重复一次,如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

电机控制算法FOC-研究英飞凌AP32013i_Inverter_TC27xC_1_22心得(一)-程序员宅基地

文章浏览阅读7.6k次,点赞8次,收藏119次。本文参照英飞凌AP32013i_Inverter_TC27xC_1_22相关的文档,研究FOC算法的原理,模块组成和调试过程。_电机控制算法

推荐文章

热门文章

相关标签