修饰符(整数篇)

unit Unit4;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm4 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

procedure integer1(a: Integer);
begin
  a := a + 1;
end;

procedure integer2(const a: Integer);
begin
  //什么都不做
  a.ToString;
end;

procedure integer3(var a: Integer);
begin
  a := a + 1;
end;

procedure integer4(out a: Integer);
begin
  a := a + 1;
end;

procedure Int641(a: Int64);
begin
  a := a + 1;
end;

procedure Int642(const a: Int64);
begin
  //什么都不做
  a.ToString;
end;

procedure Int643(var a: Int64);
begin
  a := a + 1;
end;

procedure Int644(out a: Int64);
begin
  a := a + 1;
end;

procedure TForm4.Button1Click(Sender: TObject);
var
  i: Integer;
  i2: Int64;
begin
  i := 10;
  i2 := 10;
  Integer1(i);
  Memo1.Lines.Add(i.ToString);
end;

end.

首先Integer1---无修饰符

=========================================================================

 integer2---const

=========================================================================

 integer3---var

=========================================================================

 integer4---out

 经过测试 int64也是如此。

结论:整型 是传值的,就是说 所有的整型要么值复制一份入栈,要么直接用原来的值,与堆无关。

时间: 2024-07-30 13:43:21

修饰符(整数篇)的相关文章

修饰符(动态数组篇)

1.无修饰符----要看成员变量的类型,与基本类型不一致,是直接传基本类型的地址过来,并没有把基本类型的指针复制一份入栈,所以一旦修改就是修改原来的值. 2.const 修饰符 与 无修饰符一致. 3.var修饰符 与 上一致. 4.out修饰符(不要初始化,初始化也没有意义) unit Unit4; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,

修饰符(动态String数组篇)--- 常用 解除疑问。

1.无修饰符----是直接传基本类型的地址过来,并没有把基本类型的指针复制一份入栈,所以一旦修改就是修改原来的值. 2.const 修饰符 与 无修饰符一致. 3.var修饰符 与 上一致. 4.out修饰符(不要初始化,初始化也没有意义) unit Unit4; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.C

Python_day8_面向对象(多态、成员修饰符、类中特殊方法、对象边缘知识)、异常处理之篇

一.面向对象之多态 1.多态:简而言子就是多种形态或多种类型 python中不支持多态也用不到多态,多态的概念是应用与java/C#中指定传参的数据类型, java多态传参:必须是传参数的数据类型或传参的子类类型 面向对象总结: 面向对象是一种编程方式,此编程方式的实现是基于类和对象的使用 类:是一个模板,模板中包含了多个函数共使用,即类中可包含多个函数(类中的函数即叫做方法) 一般疑问: 1)什么样的代码才是面向对象? 简单来说,如果程序中的所有功能否是由 “类”和“对象”实现,那么就是面向对

OC 属性修饰符篇

一.MRC 与 ARC 各自的属性修饰符 1 // 属性修饰符按代码规范的顺序 2 // 是否原子操作.是否可读写.内存管理 3 @property (nonatomic, readwrite, copy) NSString *str; 4 // PS:属性修饰符顺序并没有硬性规定. 二.内存管理修饰符 MRC 模式下属性修饰符 retain: 引用计数加1. assign: 分配内存,类似于copy.常用于基本数据类型,比如:int,long,NSInteger等. ARC 模式下属性修饰符

Vue学习之路第八篇:事件修饰符

学习准备: ①.顾名思义,"事件修饰符"那么肯定是用来修饰事件,既然和事件有关系,那么肯定和"v-on"指令(也可简写为:@)有关系了. ②.事件修饰符有以下几类: .stop:阻止冒泡 .prevent:阻止默认事件 .capture:事件捕获 .self:只当事件在该元素本身触发时触发回调 .once:事件只触发一次 1.阻止冒泡 页面代码: <div id="app" @click="clickDiv()">

新年在家学java之基础篇-参数&amp;修饰符&amp;构造器

可变参数 不知道可能给方法传递多少个参数时使用这个方法 public void printInfo (String[] args) --可以定义一个数组,在调用这个方法适合赋值给一个数组 public void aaa (String... args) --用java特有的...来传递可变个数的参数,在使用时,与数组的使用方式相同 如果使用数组,在调用方法是要用 a.printInfo(null):没有参数就要定义一个空数组或者null,而第二种是可以直接使用a.aaa(); 如果一个方法有多个

.NET 基础 一步步 一幕幕 [注释、命名规则、访问修饰符、数据类型、常量、变量]

注释.命名规则.访问修饰符.数据类型.常量.变量 话说一个不会写注释的程序猿的不是一个好吃货,我们本篇就从注释开始说起好了. 在C#中有三种注释: 第一种:单行注释  以//开头,后面的就是注释内容 –  //单行注释 –  第二种:多行注释  以 /*开头   */结束 之间的是注释内容 –  /*  */多行注释 –  第三种:文档注释  在方法或类的上一行输入 ///就会产生 –  /// –  ///文档注释 –  /// –  So....截图就是这三种注释的用法了. 再来说说命名规则

C# 基础(一) 访问修饰符、ref与out、标志枚举等等

C# 基础(一) 访问修饰符.ref与out.标志枚举等等 一.访问修饰符 在C#中的访问修饰符有:private.protected.internal.public public:公共类型,同一程序集或其他程序集都可以访问此成员 private:私有类型,同一类里或结构里才可以访问此成员 protected:保护类型,同一类里或者派生类中才可以访问此成员 internal:内部类型,只有在同一程序集才可以访问此成员 访问性不一致:子类的访问权限不能比父类高.防止暴露父类的信息.. 二.stat

C语言printf格式化输出修饰符详解

转换说明 输出 %a,%A 浮点数.十六进制数和p-计数法(C99) %c 一个字符 %d 有符号十进制数 %e,%E 浮点数,e计数法 %f 浮点数,十进制计数法 %g,%G 根据数值不同自动选择%f或%e,%e格式在指数小于-4或者大于等于精度时使用 %i 有符号十进制整数(与%d相同) %o 无符号八进制整数 %p 指针 %s 字符串 %u 无符号十进制数 %x,%X 使用十六进制数0f的无符号十六进制整数 %% 打印一个百分号 prinf()修饰符 修饰符 意义 标志 五种标志将在后面的