zoukankan      html  css  js  c++  java
  • 关于指针初始化的问题 回复"下雨天2"

    问题来源: http://www.cnblogs.com/del/archive/2008/05/02/1179416.html#1179645

    一个全局变量可以初始化, 如果你不主动初始化, 也会被自动初始化;
    一个局部变量不能被初始化, 虽然你不能主动初始化, 但它会被赋予一个随机值.
    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.
    
  • 相关阅读:
    使用Python操作MySQL数据库
    SQL server数据库语句
    SQL server数据库
    实施工程师
    Vue外卖项目
    每日思考记录(12)
    Vue核心知识点
    jQuery快速入门
    js
    css2
  • 原文地址:https://www.cnblogs.com/del/p/1179755.html
Copyright © 2011-2022 走看看