C++语言中函数参数传递方式的图示说明

C++语言中函数参数传递方式的图示说明

摘要:学习C++语言中函数参数传递方式的关键是给出函数调用过程中内存各段内容的变化图示。本文针对C++语言中三种函数参数传递方式,辅以代码段内容图示和堆栈段内容图示,从机理上详细解释了函数参数的传递过程。实践表明,这种图示说明的方法在教学中取得了非常良好的效果。

关键词:函数调用;参数传递;代码段;堆栈段

1背景

“C++程序设计”是高等学校计算机专业或非计算机专业学生的必修课。对于非计算机专业的学生,C++语言是他们真正学习和使用计算机语言进行编程的关键入门,对于以后在其专业应用开发中具有至关重要的作用。即使以后使用其他编程语言进行专业项目的开发,如VB、C和Java语言,C++语言由于其概念的广泛性和综合性,也能够使得他们很快学习并掌握这些编程语言。而对于计算机专业的学生来说,“C++程序设计”是“数据结构”、“算法设计”等核心课程的先修课,同时,“C++程序设计”中涉及的部分硬件知识也是其学习计算机原理的重要基础。

但是,C++作为入门程序语言课程,对于初学者来说确实难度较大。周立章对自己的教学实践进行总结,强调分层教学、案例教学和对计算机实验进行改革的思想[1];李新霞在C++的前驱语言C语言的教学实践中也表达了类似的思想[2]。因此,案例教学对C++语言来说是必不可少的。

对于大多数学生来说,C++程序设计学习中存在三个难点:(1)函数参数的传递;(2)指针变量的使用;(3)虚函数和多态性机制。

函数和类作为C++语言中的两种基本模块,分别支持C++语言进行面向过程的开发和面向对象的开发,而不论是何种开发方法,函数都是不可缺少的。一个完整的函数使用过程包括函数定义和函数调用,有时存在函数声明,而函数调用过程中,在主调函数和被调函数之间发生着数据的交互,表现为函数参数的传递和被调函数的返回值。

其中,对于函数参数传递方式及相关教学研究,得到了很多关注。马新将函数参数传递方式分为值传递方式和地址传递方式,并归纳总结了选用何种方式的条件[3];刘志华将函数参数传递方式分为简单变量作参数、指针作参数、引用作参数、数组作参数和字符串作参数共五种方式,并对每一种情况进行了实例描述[4];谭庆将函数参数传递方式分为传普通值调用、传地址值调用和引用调用三种方式,并对其使用方法进行了总结[5];王萍、谭浩强和陈志泊在其编写的相应教材中也对C++中函数参数传递方式给予了重点关注[6-8]。

本文就函数参数的传递方式,利用图示说明的方法进行研究,旨在搞清各种函数参数传递方式的本质,为函数的学习奠定坚实的基础。

相关文档
C++中函数调用时的三种参数传递方式
C++中函数调用时的三种参数传递方式 - 在 C++中,参数传递的方式是“实虚结合”。 ? ? ? 按值传递(pass by value) 地址传递(pass by pointer) 引用传递...
C++期末考试题及答案
清华大学计算机系 C++期末考试题及答案 一、 填空题(25 小题,共 50 分) (以下每小题 1 分,共 10 分) 1. 在 C++中,函数的参数有两种传递方式,它们是...
《C++函数》习题参考答案
C++函数》习题参考答案 - 1 《C++函数》习题 学号姓名 一、 选择题 1、在函数原型说明中,C 不是必要的。 A.参数类型 B.函数名 C.函数参数名 D.函数...
课后答案——C++语言程序设计教程(第二版)
(2)结构化程序设计方法主要内容有:自顶向下,逐步...函数调过程的 3 个步骤为:函数调用(或参数传递) ...(3)C++语言中规定函数的返回值类型是由定义该...
c++语言程序设计教程(第二版)习题解答 沈显军 杨进才 张勇
(2)结构化程序设计方法主要内容有:自顶向下,逐步...个步骤为:函数调用(或参数传递) ,函数体执行,返回...(3)C++语言中规定函数的返回值类型是由定义该...
c语言三种传递方式
c语言三种传递方式 - C++函数的三种传递方式为:值传递、指针传递和引用传递。 值传递: void fun(int x){ x +=...
C++语言中函数的参数分析
C++语言中函数的参数分析 - C++语言中函数的参数分析 1.概述 在高级语言程序设计中,函数是结构化程序的功能模块。参数是调用函数与 被调用函数之间交换数据的通道...
C++语言期末复习题
关于函数返回值的的描述正确的是( ) A.函数返回...使用值传递方式将实参传给形参,下列说法正确的是( ...在 C++语言中,关于参数默认值的描述正确的是( A....
C++第三章作业
c 和 c++语言中的程序就体现 为函数。调用其他函数的函数被称为主调函数,被其他 调用一个函数时,首先计算函数的实参列表中各个表达式的,然后 主调函数暂停...
C++基础考试
成员函数访问对象的成员不受访问权限修饰符影响 D)C函数可以通过this指针访问对象成员 10.在c++中,类与类之间的继承关系具有( C) A自反性 B)对称性 C传递性 ...