zoukankan      html  css  js  c++  java
  • 指针初始化

    一个全局变量可以初始化, 如果你不主动初始化, 也会被自动初始化;
    一个局部变量不能被初始化, 虽然你不能主动初始化, 但它会被赋予一个随机值.
    --------------------------------------------------------------------------------
     
    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;

    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    var
      i1: Integer; {会被自动初始化为 0}
      p1: Pointer; {会被自动初始化为 0, 也就是空指针}
    const
      BoolStr: array[Boolean] of string = ('False','True');

    procedure TForm1.FormCreate(Sender: TObject);
    var
      i2: Integer; {会被初始化为一个随机值}
      p2: Pointer; {会被初始化为一个随机地址}
      b: Boolean;
    begin
      ShowMessage(IntToStr(i1));          {0}
      ShowMessage(IntToStr(i2));          {14909552}
      ShowMessage(IntToStr(Integer(p1))); {0}
      ShowMessage(IntToStr(Integer(p2))); {4570636}

      {判断 p1、p2 两个指针是否是已赋值}
      b := Assigned(p1);
      ShowMessage(BoolStr[b]);  {False}
      b := Assigned(p2);
      ShowMessage(BoolStr[b]);  {True}

      {释放指针后再判断}
      p1 := nil;
      p2 := nil;
      b := Assigned(p1);
      ShowMessage(BoolStr[b]);  {False}
      b := Assigned(p2);
      ShowMessage(BoolStr[b]);  {False}
    end;

    end.

  • 相关阅读:
    SQL 游标使用实例 no
    C# DataTable 转换成JSON数据 no
    css设置滚动条的样式 no
    C# DataTable 转换成JSON数据 no
    springboot项目打包jar 并打包为exe启动
    springboot 项目启动自动打开浏览器访问网站设置
    springboot启动创建系统托盘及功能
    关于Web Service
    最近的我
    C++ wstring和string相互转换
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940843.html
Copyright © 2011-2022 走看看