zoukankan      html  css  js  c++  java
  • 数值参数和变量参数

    当您的程序代码在调用一个过程或函数时,通常用参数传递数据到被调用的过程或函数中。最常用的参数有数值参数、变量参数和常量参数三种。

         由被调用过程或函数定义的参数为形参,而由调用过程或函数指明的参数叫实参。在NoValue函数中,说明函数体中的AnEditBox是形参,而调用时在if NoValue(Edit1)…中,Edit1是实参。

         数值参数在运行过程中只改变其形参的值,不改变其实参的值,即参数的值不能传递到过程的外面。试看下面的例程: 

    procedure Calculate(CalNo:Integer);

    begin

    CalNo := CalNo*10;

    end; 

          用以下例程调用Calculate函数:

    Number := StrToInt(Edit1.Text);

    Calculate(Number);

    Edit2.Text := IntToStr(Number);

    … 

          Number接受由编辑框1输入的数值,经Calculate过程运算。它是一个数值型实参。在进入Calculate函数后,会把Number实参拷贝给形参CalNo,在过程中CalNo增大十倍,但并未传递出来,因此Number值并未改变,在编辑框2中显示仍然是编辑框1中的输入值。形参和实参占用不同的内存地址,在过程或函数被调用时,将实参的值复制到形参占用的内存中。因此出了过程或函数后,形参和实参的数值是不同的,但实参的值并不发生变化。

    如果您想改变传入的参数值,就需要使用变量参数,即在被调用程序的参数表中的形参前加上保留字var。例如: 

    procedure Calculate(var CalNo : Integer); 

          则CalNo并不在内存中占据一个位置,而是指向实参Number。当一个变参被传递时,任何对形参所作的改变会反映到实参中。这是因为两个参数指向同一个地址。将上一个例程中过程头的形参CalNo前面加上var,再以同样的程序调用它,则在第二个编辑框中会显示计算的结果,把第一个编辑框中的数值放大十倍。这时形参CalNo和实参Number的值都是Nnmber初始值的10倍。

          如果当过程或函数执行是要求不改变形参的值,最保险的办法是使用常量参数。在参数表的参数名称前加上保留字const可以使一个形参成为常量参数。使用常量参数代替数值参数可以保护您的参数,使您在不想改变参数值时不会意外地将新的值赋给这个参数。

  • 相关阅读:
    Mongodb基础知识笔记
    使用pillow生成分享图片
    网页文字竖排的几种实现方式
    2019-07-13月亮拍摄
    6. 从尾到头打印链表[java]
    Linux设定终端Console命令回显状态
    bash ssh的登录信息与欢迎信息
    使用putty配套工具pscp实现windows与Linux平台间文件传送[Linux]
    5. 替换空格[java]
    4. 二维数组中的查找[java]
  • 原文地址:https://www.cnblogs.com/jshchg/p/1921320.html
Copyright © 2011-2022 走看看