关于第六章函数(c++)的讨论

函数

第一节 函数

首先要知道在编程过程中为什么要使用函数?函数的调用是不是使得c++的程序复杂了呢,而且没有什么实际用处呢?事实恰恰相反,函数的使用让程序 的可读性,可维护性更强。同时函数也可以被反复调用,也提高了模块的可复用性。

函数定义

了解什么是函数?它的具体形式是什么?

函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。咱们自己可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由自己来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。

在 C++ 中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:

· 返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void

· 函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。

· 参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。

· 函数主体:函数主体包含一组定义函数执行任务的语句。

 

函数的形式

函数的形式从结构上说可以分为三种:无参函数,有参函数和空函数。但是他们的定义形式大致相同。

(1)无参函数

顾名思义极为没有参数传递的函数,无参函数一般不需要带回函数值,所以函数类型说明为void。

(2)有参函数

有参函数即为有参数传递的函数了,一般这种函数需要带回函数值。

(3)空函数

空函数就是空白的意思,函数体只有一对花括号,花括号内没有任何语句的函数。例如:

函数名()

{

        }

空函数不完成什么工作,只占用一个位置,在大型的程序设计中,这种空函数用来扩充其他函数的功能。

函数的声明与调用

函数的声明:函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定在函数声明中,参数的名称并不重要,只有参数的类型是必需的义。当您在一个源文件中定义函数且在另一个文件中调用函数时,函数声明是必需的。在这种情况下,我们自己应该在调用函数的文件顶部声明函数。

函数的调用:创建 C++ 函数时,会定义函数做什么,然后通过调用函数来完成已定义的任务。其实就是为函数分配储存空间,执行函数被其他函数调用的函数称为执行函数;调用其他函数的函数,称为调用函数。

当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行已定义的任务,当函数的返回语句被执行时,或到达函数的结束括号时,会把程序控制权交还给主程序。

Tips:函数定义!=函数调用

调用函数的返回值:调用函数时,传递所需参数,如果函数返回一个值,则可以存储返回值。

函数的传值调用

函数调用过程:

 

1.传值调用

这种调用方式是将实参的数据传递给形参,即将实参值拷贝一个副本存放在被调用函数的栈区中。被调用函数中,形参值可以改变,但不影响主调函数的实参值。参数传递方式只是从实参到形参,简称单向值传递。

2.传址调用

这种调用方式是将实参变量的地址值传递给形参,这时形参是指针,即让形参的指针指向实参地址,这里不再是将实参拷贝一个副本给形参,而是让形参直接指向实参,这就提供了一种可以改变实参变量的值的方法。

指针变量

对指针变量的介绍,举例如下:

                    int *p (定义指针变量)

                    int &x=y (x不分配新的空间,与y公用同一空间)

                    p=&x (取x地址)

                    y=*p (取p地址中的内容)

对于指针指向数组元素的介绍,举例如下:

                    int a[10] ,*p (定义指着变量)

                    p=&a[0](取a[0]地址)

                    p=a (取整个数组[a]的地址)

                    (p为变量,a为常量)

举个指针变量的经典例子:用指向数组的指针变量输出数组的全部元素;

                    int main ()

                    {

                            int a[10],i;

                            int *p;

                            for (i=0;i<=10;i++)

                            cin>>a[i]; (输入数组元素)

                            for (p=a;p<a+10;p++);(p=a:指针变量赋初值;p++指向下一元素)

                            cout<<*p<<'\t';(输出指针指向的数据)

                                                                }

实参形参

对于实参与形参,有以下四点需注意:

1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。

 

局部变量与全部变量

1,局部变量只在本函数范围有效,在此函数以外是不能使用这些变量;全局变量的有效范围是从定义变量的位置开始到本源文件结束。
2,局部变量是程序运行到该函数时给该变量分配内存空间,函数结束则释放该内存空间;全局变量是程序运行时事先分配内存空间,当程序结束时释放内存。

本节对于对函数的学习,我觉得以后对一些复杂程序的处理上有很多需要借鉴的地方,总体就是说,化繁为简,化抽象为具体,具体情况具体分析,更能清楚地了解代码中各部分的职责,也更方便对整个程序的维护,提高代码的利用率和使用效率,这就是IT人才的具体思路趋向吧应该,

 

 

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
《C Primer Plus第六版》是一本面向初学者的C语言教材,由Stephen Prata撰写。这本书深入浅出地介绍了C语言的基本概念、语法和应用,给读者提供了扎实的编程基础。 该书共分为27章,每章都有清晰的目标、易于理解的示例和练习题。从第一章的入门介绍开始,到最后一章的高级主题讨论,书中的内容依次递进,系统完整地覆盖了C语言的方方面面。本书有助于读者逐步掌握C语言的基础知识,从简单的输出语句到复杂的函数调用和指针使用。 《C Primer Plus第六版》的特点是其清晰的讲解风格和丰富的实例。作者通过通俗易懂的语言和生动形象的例子,帮助读者理解和掌握C语言的各种概念和语法。此外,书中还提供了许多练习题和编程项目,供读者巩固所学知识和提高编程能力。 作为一本经典的C语言教材,《C Primer Plus第六版》被广泛用于学校和个人学习。它不仅适用于初学者,也对有一定编程基础的读者有所帮助。读者通过学习本书,可以建立起对C语言编程的扎实基础,为深入学习其他编程语言打下坚实的基础。 综上所述,《C Primer Plus第六版》是一本权威、经典的C语言教材,通过清晰的讲解和丰富多样的示例帮助读者深入理解C语言的基本概念和应用。无论是初学者还是有一定编程基础的读者,都可以从中获益,打下良好的编程基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值