文档章节

关于指针初始化的问题 - 回复"下雨天2"

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 267
阅读 5
收藏 0
问题来源: 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.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/05/02/1179755.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
转帖关于new/delete的运算符和malloc()/free()的标准库函数

new--------delete malloc--------free 问题: 我又一个对象类,里面有一个指针链表,动态分配空间,在析构的时候释放。开始对对象进行new操作,但是执行delete对象操作的时候出错,提示在析...

lixun
2012/08/29
0
0
VC++常用数据类型及其操作详解

一.VC常用数据类型列表 二.常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CString及string,char 与其他数据类型的转换和操作 ●CString,string,char的综合比较 ●数学类型与CString...

晨曦之光
2012/03/09
0
0
VC++常用数据类型及其操作详解(非常经典,共同分享)

友情提示: 为了方便你更好的学习和阅读,也更好的体现尊重原创作者的劳动成果,请您直接查看转载原本链接: http://snailflying.blog.hexun.com/8219350d.html ==========================...

长平狐
2013/01/06
1K
0
一周 Go World 新鲜事[Asta 优选]

01 gkvdb v1.81 发布,Go 语言嵌入式 K/V 数据库 gkvdb是Go语言开发的基于DRH(Deep-Re-Hash)深度哈希分区算法的高性能Key-Value嵌入式数据库。 v1.81的具体改进: 1、增加多表支持,将底层...

ra681t58cjxsgckj31
2017/12/08
0
0
深入 V8 引擎:“小整数”到底有多小?

深入 V8 引擎:“小整数”到底有多小? (static_cast(-1)) << (kSmiValueSize — 1);static const int kSmiMaxValue = -(kSmiMinValue + 1); 发布于昨天 15:48 文章被以下专栏收录...

justjavac
09/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
49分钟前
1
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0
搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
2
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
3
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部