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++模拟题2答案
必 须通过参数传递的方式得到相应的对象,再通过对象...函数的功能 答案:D 解析:函数的声明,说明函数的...C++语言中如果调用函数时,需要改变实参或者返回多个...
C++作业1
C++作业 1 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并...2.C++语言的函数参数传递方式传值和___。 3.重载赋值操作符时,应声明为...
c语言三种传递方式
c语言三种传递方式 - C++函数的三种传递方式为:值传递、指针传递和引用传递。 值传递: void fun(int x){ x +=...
C++复习参考及答案
函数是一个类的常成员函数,它无返回值,下列表示中...A.C 语言是 C++语言的一个子集 B.C 语言与 ...1、在 C++ 中,函数的参数有两种传递方式,它们是...
在下列原型所示的C++函数中,按“传值”方式传递参数的是______。
在下列原型所示的C++函数中,按“传值方式传递参数的是___。 A.void f1(int x); B.void f2(int*x);C.void B(const int*x); D.void f4(int&...
16秋福师《C++语言程序设计》在线作业一答案
16秋福师《C++语言程序设计》在线作业一答案_远程、...运算符时,其参数表中没有任何参数则说明该运算符是...分 得分:2 引用的目的主要用于在函数参数传递中,...
《C++语言程序设计》作业题
C++语言程序设计》作业题一、判断题 ()1、写在...()46、C++中的所有函数调用都是传值调用。 ()47...()50、说明和定义类的对象时,类名前面不需要加 ...
以下对C++语言函数的有关描述中,正确的是 A.在C++语言中调用函数
以下对C++语言函数的有关描述中,正确的是 A.在C++语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参B.C++语言函数既可以嵌套定义又可以递归调用...