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.

  • 相关阅读:
    笔记本搜不到无线网络连接[转]
    局域网IP冲突
    CFree 修改/添加编译配置环境(Build Configuration)
    字母索引网页
    NAOChoregraphe"单机使用许可证使用了多次"问题解决方案
    redis源码笔记-dict.c
    redis源码笔记-sds
    redis源码笔记-testhelp
    redis源码笔记-endian
    redis源码笔记-dict.h
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940843.html
Copyright © 2011-2022 走看看